In [1]:
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import mpl_toolkits as mplot3d
import scipy as sp
pd.set_option("display.max_columns", None)
from tqdm import tqdm
tqdm.pandas()
In [2]:
def lighten_color(color, amount=0.5):
    """
    Lightens the given color by multiplying (1-luminosity) by the given amount.
    Input can be matplotlib color string, hex string, or RGB tuple.

    Examples:
    >> lighten_color('g', 0.3)
    >> lighten_color('#F034A3', 0.6)
    >> lighten_color((.3,.55,.1), 0.5)
    """
    import matplotlib.colors as mc
    import colorsys
    try:
        c = mc.cnames[color]
    except:
        c = color
    c = colorsys.rgb_to_hls(*mc.to_rgb(c))
    return colorsys.hls_to_rgb(c[0], 1 - amount * (1 - c[1]), c[2])

DATA CLEANING AND WRANGLING¶

Typeform Data¶

In [3]:
d0 = pd.read_csv('India_riskliteracy_dataset_above median_2024_new.csv').rename({"#":"ResponseId"}, axis = 1)
d0 = d0.loc[ d0["Please state your current occupation."] != "Student"]
d0
Out[3]:
ResponseId Unnamed: 1 #.1 Please indicate your Gender. Please mark your age (in years) What is currently your highest Education? Please state your current occupation. How do you describe your willingness to take financial risk in general? Given the number of years that you have held various investments and the amount of investing you might have done, what degree of investment experience in the stock market do you have? If an expert tries to worry or scare me, i.e. a financial advisor about my financial situation, I choose another expert. I only buy a financial product I understand. I trust doctors. When I want to buy a bigger item like a refrigerator or an expensive item of clothing, I wait a month to see whether I still want it and only buy it then. I always keep in mind that everything I do on the web could be used to my disadvantage. In my household, we/I spend: In my household, we/I _Distribution 1_\n\nHow risky do you perceive the investment to be? _Distribution 2_\n\nHow risky do you perceive the investment to be? _Distribution 3_\n\nHow risky do you perceive the investment to be? _Distribution 4_\n\nHow risky do you perceive the investment to be? _Distribution 5_\n\nHow risky do you perceive the investment to be? Distribution 6\n\nHow risky do you perceive the investment to be? Distribution 7\n\nHow risky do you perceive the investment to be? Distribution 8\n\nHow risky do you perceive the investment to be? *Mumbai * A = 9 out of 10000 *OR * B = 1 out of 1000 *Bengaluru * A = 0.7% *OR * B = 0.099% *Kolkata * A = 0.61% *OR * B = 6 out of 10000 HIV test Fingerprint DNA test Cancer screening test Professional horoscope A study estimates that eating 100g chocolate everyday increases the risk of obesity by 20%. Which of the following statements is true? There is an official prediction that the national stock market will grow 2% annually over the next 5 years. This means that… Imagine you are told that the price of the stock Soya Ruchi increases from INR 60 to INR 120 after the company merger. What does this mean? It is predicted that Indigo Bank has 30% chance of default next year. Which of the following alternatives is the most appropriate interpretation of the statement? The probability that the economy will go into a recession this year is 30%. If the economy goes into recession, the probability that the stock market will decrease is 80%. If the economy does not go into a recession, the probability that the stock market will decrease is 23%. What is the probability that the economy goes into recession given that the stock market decreased? A new policy intervention increases the number of people who are employed by 20%. This statistic implies that the intervention increases the number of people who are employed from: Imagine you are told that a new medication increases the number of people who recover from a disease from 2 out of 1,000 to 4 out of 1,000. This implies: Imagine that we flip a fair coin 1,000 times. What is your best guess about how many times the coin will come up heads in 1,000 flips? \n\n\_\_\_\_\_\_ times out of 1,000. In the Bingo Lottery, the chance of winning a $10 prize is 1%. What is your best guess about how many people will win a $10 prize if 1,000 people each buy a single ticket for Bingo Lottery?\n\n\_\_\_\_\_\_ person(s) out of 1,000. In a sweepstakes, the chance of winning a car is 1 in 1,000. What percentage of tickets for the sweepstakes wins a car?\n\n\_\_\_\_\_ % of tickets About 10 out of 1,000 children develop Down syndrome. In a Down syndrome test, 9 out of these 10 children with Down syndrome tested positive. Out of the 990 children without Down syndrome 50 nevertheless tested positive. Among those women with a positive test result concerning their child how many actually have a child with Down syndrome? [Select one response only] Approximately what percentage (%) of people who die from cancer die from colon cancer, breast cancer, and prostate cancer taken together? The following figure shows the number of men and women among a group of smartphone users. The total number of circles is 100. \n\nHow many more men than women are there among the 100 people using a smartphone? In a magazine you see two advertisements, one on page 5 and another on page 12. Each is for a different drug for treating heart disease, and each includes a graph showing the effectiveness of the drug compared to a placebo (sugar pill).\n\nCompared to the placebo, which treatment leads to a larger decrease in the percentage of patients who die? Please indicate your approximate annual personal income from all sources for last year Please provide a rough guess (in Indian Rupees) of the worth of your household's assets. Please do not forget to correct it for your debts, such as a mortgage or any loans you might have. uid Response Type Start Date (UTC) Stage Date (UTC) Submit Date (UTC) Network ID LTA q8_2_1 q8_2_2 q8_2_3 q8_2_4 q8_2_5 q8_3 q8_4 q8_5berlin_1 q8_5london_1 q8_5paris_1 q8_6 q8_7 q9_1_1 q9_2_1 q9_3 q10_1_1 q10_2_1 q10_3_1 q10_4 certainty1 certainty2 certainty3 certainty4 certainty5 uncertainty1 uncertainty2 numeracy1 numeracy2 numeracy3 numeracy4 numeracy5 graph1 graph2 graph3 riskcalculation1 riskcalculation2 riskcalculation3 riskcalculation4
0 00dn8csjzlekx6gzhrcv00dn8csj32tz 547 00dn8csjzlekx6gzhrcv00dn8csj32tz Male 25 - 35 Under Graduate Investment Professional, i.e. stock broker/tra... 7 10 Completely Just about Completely Completely Just about all or more than the household income, even th... have an emergency fund, and spend as it feels ... 7 7 7 6 6 6 6 7 A B A Yes Yes Yes Yes Yes The lower the quality of the study, the more l... the growth rate will be 0.4% on average each year the stock price increased by 50% 30% of the banks customers will default next year 30% it is not possible to determine which of the a... The medication increases recovery by 50% 30 20 30 9 out of 10 40 60 They are equal 5,00,000 - 15,00,000 50000 MX9oX1724844773oYI completed 2024-08-28 11:35:35 NaN 2024-08-28 12:02:05 f30fdd629e 18.402778 1 1 1 1 1 1 1 1 2 1 2 4 40 60 3 30 20 30 2 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0
1 00ujdxbfoya0donu8r00ujcjdkojc99x 428 00ujdxbfoya0donu8r00ujcjdkojc99x Female 25 - 35 Under Graduate Employee/Consultant in Other than the Finance ... 7 8 Completely Completely Completely Moderately Moderately less than half of the household income and sav... write down budget and spending, and have an em... 2 1 1 1 0 2 0 0 B B A Yes Yes Yes Yes No The higher the quality of the study, the more ... the growth rate over five years will be betwee... the stock price increased by 50% The bank will default on 30% of repayments in ... 50% 100 in 10,000 people prior to the intervention... The medication increases recovery by 50% 500 100 1 59 out of 1000 50 10 They are equal < 5,00,000 1500000 MXic21725178744djB completed 2024-09-01 08:23:04 NaN 2024-09-01 09:24:44 1c1d51349c 42.824074 1 1 1 1 2 2 3 2 2 1 2 2 50 10 3 500 100 1 3 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0
3 022xoawhrghfhv4a1g022xmz7hb0m41f 442 022xoawhrghfhv4a1g022xmz7hb0m41f Female 46 - 55 Under Graduate Entrepreneur or Own Business 5 4 Somewhat Somewhat Moderately Just about Somewhat all or more than the household income, even th... spend as it feel right, and do not have an eme... 4 4 4 4 4 4 4 4 B A B Yes Yes Yes No No The lower the quality of the study, the more l... the growth rate will be 0.4% on average each year the stock price increased by 60% 30% of the banks customers will default next year 80% 5 in 100 people prior to the intervention to 6... The medication increases recovery by 2% 500 1 1 59 out of 1000 17 65 They are equal < 5,00,000 15000000 MXFDH1725178659xRn completed 2024-09-01 08:21:14 NaN 2024-09-01 08:33:49 fbd8962401 8.738426 1 1 1 2 2 1 1 2 1 2 3 1 17 65 3 500 1 1 3 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 0
4 02pxtdbyibecqqfvwlw02pxwfbane9zd 558 02pxtdbyibecqqfvwlw02pxwfbane9zd Female 46 - 55 Post Graduate Employee/Consultant in Other than the Finance ... 6 10 Not at all Completely Completely Completely Moderately all or more than the household income, even th... have an emergency fund, and spend as it feels ... 5 5 6 5 7 5 0 5 B A A Yes Yes Yes No Yes The higher the quality of the study, the more ... it is not possible to predict the growth rate ... an answer is not possible based on the informa... 30% of the banks customers will default next year 30% 5 in 100 people prior to the intervention to 6... None of the above is implied. 1000 1 100 9 out of 10 20 20 Can’t say 5,00,000 - 15,00,000 3000000 MXIpM1724844742xet completed 2024-08-28 11:35:05 NaN 2024-08-28 11:48:47 e8b668d11b 9.513889 1 1 1 2 1 2 4 2 1 1 4 1 20 20 4 1000 1 100 2 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0
5 037aefjdt26mnjd102nz0pk037aedfhc 544 037aefjdt26mnjd102nz0pk037aedfhc Male 46 - 55 Post Graduate Employee/Consultant in Other than the Finance ... 3 6 Somewhat Somewhat Somewhat Somewhat Somewhat more than half of the household income and sav... write down budget and spending, but have no em... 3 1 6 1 2 6 7 5 A B A No No Yes No No Irrespective of the quality of the study, futu... it is not possible to predict the growth rate ... an answer is not possible based on the informa... Banks similar to Indigo will default 30% of th... 60% 70 in 100 people prior to the intervention to ... None of the above is implied. 1000 1 10 9 out of 59 50 20 Hertinol 5,00,000 - 15,00,000 7000000 MXpv61724844846UVs completed 2024-08-28 11:35:50 NaN 2024-08-28 11:45:54 f51b723011 6.990741 2 2 1 2 2 3 4 1 2 1 4 3 50 20 2 1000 1 10 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
638 zeoufbqlngfunzzeoymhtj2sp5cw6lur 396 zeoufbqlngfunzzeoymhtj2sp5cw6lur Male 25 - 35 Post Graduate Investment Professional, i.e. stock broker/tra... 3 8 Not at all Somewhat Somewhat Moderately Somewhat less than half of the household income and sav... spend as it feel right, and do not have an eme... 3 4 4 3 6 6 3 4 B A A No Yes No No No The higher the quality of the study, the more ... the growth rate over five years will be exactl... the stock price increased by 100% Banks similar to Indigo will default 30% of th... 50% 70 in 100 people prior to the intervention to ... The medication increases recovery by 100% 500 100 1 59 out of 1000 50 40 Crosicol < 5,00,000 50000 MXFoD1725258821KAh completed 2024-09-02 06:36:01 NaN 2024-09-02 06:46:38 c31fa70c8d 7.372685 2 1 2 2 2 2 2 2 1 1 1 3 50 40 1 500 100 1 3 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0
639 zfemo30rg0ekva18x1kjwzfemo2wpg2p 185 zfemo30rg0ekva18x1kjwzfemo2wpg2p Male 36 - 45 Ph.D. or higher Employee/Consultant in Other than the Finance ... 6 8 Not at all Moderately Just about Not at all Not at all less than half of the household income and sav... have an emergency fund, and spend as it feels ... 3 1 4 2 0 5 0 2 B A A No Yes Yes No No Irrespective of the quality of the study, futu... the growth rate over five years will be betwee... the stock price increased by 100% 30% of central bankers think that Indigo Bank ... 30% 100 in 10,000 people prior to the intervention... The medication increases recovery by 100% 500 10 1 59 out of 1000 25 20 Can’t say 15,00,001 - 25,00,000 8500000 MXUxt1725260651heG completed 2024-09-02 07:08:18 NaN 2024-09-02 07:23:09 fbb956cffc 10.312500 2 1 1 2 2 4 3 2 1 1 1 2 25 20 4 500 10 1 3 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 0
640 znqvw4t38br3072znqvwvjsgb6wvj7nt 305 znqvw4t38br3072znqvwvjsgb6wvj7nt Female 36 - 45 Post Graduate Entrepreneur or Own Business 5 5 Somewhat Completely Just about Moderately Somewhat less than half of the household income and sav... spend as it feel right, and do not have an eme... 0 0 0 1 0 0 0 0 B B B Yes Yes Yes No No Irrespective of the quality of the study, futu... it is not possible to predict the growth rate ... the stock price increased by 50% 30% of the banks customers will default next year 80% it is not possible to determine which of the a... The medication increases recovery by 2% 500 10 1 9 out of 59 25 20 Hertinol 5,00,000 - 15,00,000 2000000 MXd921725259652XDJ completed 2024-09-02 06:49:56 NaN 2024-09-02 07:17:20 1964f49e1c 19.027778 1 1 1 2 2 3 4 2 2 2 3 4 25 20 2 500 10 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1
641 zstpq23h1x3ilab8s8vsrbkw8t4zstpq 306 zstpq23h1x3ilab8s8vsrbkw8t4zstpq Male 18 - 25 Under Graduate Entrepreneur or Own Business 6 9 Completely Completely Moderately Completely Moderately all or more than our household income, because... have an emergency fund, and spend as it feels ... 6 3 7 1 2 7 7 3 A A B No Yes Yes No No The higher the quality of the study, the more ... the growth rate over five years will be betwee... the stock price increased by 60% Banks similar to Indigo will default 30% of th... 80% 5 in 100 people prior to the intervention to 6... None of the above is implied. 750 10 1 59 out of 1000 50 10 They are equal 5,00,000 - 15,00,000 60000000 MXfmg1725259705Fkj completed 2024-09-02 06:49:52 NaN 2024-09-02 07:01:04 03aa77ec48 7.777778 2 1 1 2 2 2 3 1 1 2 4 1 50 10 3 750 10 1 3 1 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0
642 ztfdlcbiyo1xco3ztfdl4ozqpte2q3m9 95 ztfdlcbiyo1xco3ztfdl4ozqpte2q3m9 Male 25 - 35 Post Graduate Entrepreneur or Own Business 6 7 Somewhat Just about Completely Moderately Somewhat more than half of the household income and sav... spend as it feel right, and do not have an eme... 6 0 2 5 3 7 0 4 B A A No Yes Yes Yes Yes The higher the quality of the study, the more ... it is not possible to predict the growth rate ... the stock price increased by 100% 30% of central bankers think that Indigo Bank ... 80% 5 in 100 people prior to the intervention to 6... The medication increases recovery by 2% 500 10 1 59 out of 1000 25 60 Can’t say 15,00,001 - 25,00,000 5000000 MXjp51725955476hMt completed 2024-09-10 08:06:34 NaN 2024-09-10 08:16:35 f68294192e 6.956019 2 1 1 1 1 2 4 2 1 1 3 1 25 60 4 500 10 1 3 1 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0

636 rows × 93 columns

Demographics¶

In [4]:
# Age groups/rec = [2,3,4]
# Age group 2 = 18 to 35 y/o
# Age group 3 = 36 to 55 y/o
# Age group 4 = 56 to 75 y/o (75 y/o, i.e, within the scope of the data we have, it can mean 60 and above also)

d0["age_rec"] = np.where( d0["Please mark your age (in years)"] == "18 - 25" , 2,
                          np.where(d0["Please mark your age (in years)"] == "25 - 35", 2,
                                   np.where( d0["Please mark your age (in years)"] == "36 - 45", 3,
                                            np.where( d0["Please mark your age (in years)"] == "46 - 55", 3,
                                                     np.where( d0["Please mark your age (in years)"] == "56 - 65", 4,
                                                              np.where( d0["Please mark your age (in years)"] == "Above 65", 4, 0
                                                                      )
                                                             )
                                                    )
                                           )
                                  )
                        )

d0["age"] = np.where( d0["Please mark your age (in years)"] == "18 - 25" , (18 + 25) / 2,
                          np.where(d0["Please mark your age (in years)"] == "25 - 35", (26 + 35) / 2,
                                   np.where( d0["Please mark your age (in years)"] == "36 - 45", (36 + 45) / 2,
                                            np.where( d0["Please mark your age (in years)"] == "46 - 55", (46 + 55) / 2,
                                                     np.where( d0["Please mark your age (in years)"] == "56 - 65", (56 + 65) / 2,
                                                              np.where( d0["Please mark your age (in years)"] == "Above 65", (66 + 75) / 2, 0
                                                                      )
                                                             )
                                                    )
                                           )
                                  )
                        )


# Secondary upto 10 – ISCED 3
# Senior Secondary upto 12 - ISCED 3 
# Diploma and voca – ISCED 2
# UG – ISCED 2
# PG – ISCED 1
# PhD and higher – ISCED 1

d0["isced"] = np.where(d0["What is currently your highest Education?"] == "Post Graduate", 1,
                        np.where(d0["What is currently your highest Education?"] == "Under Graduate", 2,
                                 np.where(d0["What is currently your highest Education?"] == "Ph.D. or higher", 1,
                                          np.where(d0["What is currently your highest Education?"] == "Diploma or vocation training", 2,
                                                   np.where(d0["What is currently your highest Education?"] == "School degree (X or XII)", 3, 0
                                                           )
                                                  )
                                         )
                                )
                       )

d0["income"] = np.where(d0["Please indicate your approximate annual personal income from all sources for last year"] == "< 5,00,000", 1,
                         np.where(d0["Please indicate your approximate annual personal income from all sources for last year"] == "5,00,000 - 15,00,000", 2,
                                  np.where(d0["Please indicate your approximate annual personal income from all sources for last year"] == "15,00,001 - 25,00,000", 3,
                                           np.where(d0["Please indicate your approximate annual personal income from all sources for last year"] == "25,00,001 - 35,00,000", 4,
                                                    np.where(d0["Please indicate your approximate annual personal income from all sources for last year"] == "35,00,001 - 45,00,000", 5,
                                                             np.where( d0["Please indicate your approximate annual personal income from all sources for last year"] == "> 45,00,000", 6,0
                                                                     )
                                                            )
                                                   )
                                           )
                                  )
                         )

d0["wealth"] = d0["Please provide a rough guess (in Indian Rupees) of the worth of your household's assets. Please do not forget to correct it for your debts, such as a mortgage or any loans you might have."]
In [5]:
d0["isced"]
Out[5]:
0      2
1      2
3      2
4      1
5      1
      ..
638    1
639    1
640    1
641    2
642    1
Name: isced, Length: 636, dtype: int32

Scoring¶

In [6]:
d0["Certainty_3"] = d0["certainty1"] + d0["certainty2"] + d0["certainty3"]
d0["RiskComprehension_3"] = d0["riskcalculation1"] + d0["riskcalculation2"] + d0["riskcalculation3"] + d0["riskcalculation4"]
d0["GraphLiteracy_3"] = d0["graph1"] + d0["graph2"] + d0["graph3"]
d0["Numeracy_3"] = d0["numeracy1"] + d0["numeracy2"] + d0["numeracy3"]
d0["Bayesianreasoning_1"] = d0["numeracy4"]
d0["TotalScore_13"] = d0["Certainty_3"] + d0["RiskComprehension_3"] + d0["GraphLiteracy_3"] + d0["Numeracy_3"] + d0["Bayesianreasoning_1"]

d0["Certainty_%"] = d0["Certainty_3"] / 3 * 100
d0["RiskComprehension_%"] = d0["RiskComprehension_3"] / 4 * 100
d0["GraphLiteracy_%"] = d0["GraphLiteracy_3"] / 3 * 100
d0["Numeracy_%"] = d0["Numeracy_3"] / 3 * 100
d0["Bayesianreasoning_%"] = d0["Bayesianreasoning_1"] / 1 * 100

d0["TotalScore_%"] = d0["TotalScore_13"] / 14 * 100


colReq = ["ResponseId", "age", "age_rec", "isced", "income", "wealth", "Certainty_3", "RiskComprehension_3", "GraphLiteracy_3",
          "Numeracy_3", "Bayesianreasoning_1", "Certainty_%", "RiskComprehension_%", "GraphLiteracy_%", "Numeracy_%", "Bayesianreasoning_%",
          "TotalScore_13", "TotalScore_%",]

d01 = d0[colReq].copy()
d01
Out[6]:
ResponseId age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
0 00dn8csjzlekx6gzhrcv00dn8csj32tz 30.5 2 2 2 50000 0 0 1 1 0 0.000000 0.0 33.333333 33.333333 0.0 2 14.285714
1 00ujdxbfoya0donu8r00ujcjdkojc99x 30.5 2 2 1 1500000 0 1 1 2 0 0.000000 25.0 33.333333 66.666667 0.0 4 28.571429
3 022xoawhrghfhv4a1g022xmz7hb0m41f 50.5 3 2 1 15000000 0 1 1 2 0 0.000000 25.0 33.333333 66.666667 0.0 4 28.571429
4 02pxtdbyibecqqfvwlw02pxwfbane9zd 50.5 3 1 2 3000000 0 0 1 3 0 0.000000 0.0 33.333333 100.000000 0.0 4 28.571429
5 037aefjdt26mnjd102nz0pk037aedfhc 50.5 3 1 2 7000000 2 1 1 1 0 66.666667 25.0 33.333333 33.333333 0.0 5 35.714286
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
638 zeoufbqlngfunzzeoymhtj2sp5cw6lur 30.5 2 1 1 50000 2 1 0 3 1 66.666667 25.0 0.000000 100.000000 100.0 7 50.000000
639 zfemo30rg0ekva18x1kjwzfemo2wpg2p 40.5 3 1 3 8500000 1 2 2 3 1 33.333333 50.0 66.666667 100.000000 100.0 9 64.285714
640 znqvw4t38br3072znqvwvjsgb6wvj7nt 40.5 3 1 2 2000000 0 3 2 1 0 0.000000 75.0 66.666667 33.333333 0.0 6 42.857143
641 zstpq23h1x3ilab8s8vsrbkw8t4zstpq 21.5 2 2 2 60000000 1 1 1 1 0 33.333333 25.0 33.333333 33.333333 0.0 4 28.571429
642 ztfdlcbiyo1xco3ztfdl4ozqpte2q3m9 30.5 2 1 3 5000000 1 2 1 3 0 33.333333 50.0 33.333333 100.000000 0.0 7 50.000000

636 rows × 18 columns

In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 

BeSample Data¶

In [7]:
d1 = pd.read_csv('Indian Risk Survey_Besample_Filtered_12_2024.csv')
d11 = d1.iloc[:, 19:62].copy()
d11 = d11.loc[ d11["Q4"] != "Student"]
d11.insert(0, "ResponseId",0)
d11["ResponseId"] = d1["ResponseId"].copy()
d11
Out[7]:
ResponseId Q0 Q1 Q2 Q3 Q4 Q5_1 Q6_1 Q8_1 Q8_2 Q8_3 Q8_4 Q8_5 Q8_6 Q8_7 Q8_8 Q9b_1 Q9b_4 Q9b_5 Q9b_6 Q9b_7 Q9b_8 Q9b_9 Q11a_1 Q11a_2 Q11a_3 Q11b Q11c Q11d Q11h Attention Check Q11i Q12a Q12b Q12c Q13a Q13b Q13c Q13d Q14a Q14b Q14c Q15a Q14b.1
1 R_4F8RqnI7xnwXmBY Yes, I would like to participate in the study ... Male 41 Undergraduate Program Salaried/Employee/Consultant in a sector other... 6 9 4 4 4 4 4 5 4 5 10.0 30.0 0 0 20.0 40 0.0 2 1 1 HIV test,Fingerprint,DNA test Irrespective of the quality of the study, futu... It is not possible to predict the growth rate ... 100 in 10,000 people prior to the intervention... Vase The medication increases recovery by 100% More than $102 Less than today with the money in this account False 500 10 0.10 59 out of 1000 25.0 20 Can’t say INR 500,001 – INR 15,00,000 5000000.0
4 R_4TMr0yMiNpsJBr5 Yes, I would like to participate in the study ... Male 37 Undergraduate Program Salaried/Employee/Consultant in a sector other... 3 1 4 5 5 6 (strongly agree) 6 (strongly agree) 6 (strongly agree) 6 (strongly agree) 2 70.0 10.0 0 0 0.0 10 10.0 2 1 1 HIV test,Fingerprint,DNA test,Cancer screening... The higher the quality of the study, the more ... The growth rate over five years will be exactl... 100 in 10,000 people prior to the intervention... Vase The medication increases recovery by 100% More than $102 Less than today with the money in this account False 500 10 0.10 59 out of 1000 25.0 20 They are equal < INR 500,000 1000000.0
7 R_4lDL0HKQBvz3esp Yes, I would like to participate in the study ... Male 29 Undergraduate Program Entrepreneur/Business Owner in a sector other ... 7 (willing to take risk) 3 1 (strongly disagree) 2 3 4 6 (strongly agree) 4 4 1 (strongly disagree) 70.0 10.0 0 5 0.0 10 5.0 2 2 1 HIV test,Fingerprint,DNA test,Cancer screening... The higher the quality of the study, the more ... The growth rate over five years will be exactl... 70 in 100 people prior to the intervention to ... Vase The medication increases recovery by 100% More than $102 Less than today with the money in this account True 500 10 0.10 9 out of 10 25.0 20 They are equal INR 500,001 – INR 15,00,000 500000.0
8 R_4MNcacFfRQwplfz Yes, I would like to participate in the study ... Male 27 Post-Graduate Program Salaried/Employee/Consultant in a sector other... 0 (unwilling to take risk) 0 (no investment experience) 3 4 3 3 6 (strongly agree) 4 4 5 20.0 10.0 0 0 20.0 30 20.0 2 2 1 Fingerprint The higher the quality of the study, the more ... The growth rate will be 0.4% on average each year 100 in 10,000 people prior to the intervention... Vase None of the above is implied More than $102 Less than today with the money in this account False 500 100 0.10 9 out of 10 10.0 20 Crosicol INR 500,001 – INR 15,00,000 10000000.0
9 R_4Ecp6YekNbrMCwi Yes, I would like to participate in the study ... Male 39 Post-Graduate Program Entrepreneur/Business Owner in a sector other ... 4 7 5 5 6 (strongly agree) 5 5 6 (strongly agree) 5 6 (strongly agree) 80.0 20.0 0 0 0.0 0 0.0 2 1 1 Fingerprint The higher the quality of the study, the more ... The growth rate over five years will be exactl... 5 in 100 people prior to the intervention to 6... Vase The medication increases recovery by 2% More than $102 Less than today with the money in this account False 1000 10 10.00 9 out of 10 25.0 60 Crosicol < INR 500,000 165000.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
364 R_4zPiSk23ayGvFD4 Yes, I would like to participate in the study ... Male 70 Undergraduate Program Salaried/Employee/Consultant in a sector other... 4 6 4 4 4 4 5 5 5 4 15.0 20.0 10 0 25.0 30 0.0 2 1 1 DNA test The higher the quality of the study, the more ... It is not possible to predict the growth rate ... It is not possible to determine which of the a... Vase The medication increases recovery by 100% More than $102 Less than today with the money in this account False 500 10 1.00 59 out of 1000 25.0 20 Crosicol INR 1500,001 – INR 30,00,000 7000000.0
365 R_47eRbAoGWc5Ttzb Yes, I would like to participate in the study ... Male 48 Post-Graduate Program Salaried/Employee/Consultant in a sector other... 0 (unwilling to take risk) 1 4 5 4 5 5 2 3 6 (strongly agree) 50.0 10.0 10 20 2.0 5 3.0 1 1 1 Professional horoscope Irrespective of the quality of the study, futu... The growth rate over five years will be exactl... 70 in 100 people prior to the intervention to ... Vase The medication increases recovery by 2% Refuse to answer Exactly the same as today with the money in th... False 500 68 0.01 59 out of 100 50.0 40 They are equal < INR 500,000 50000.0
366 R_4eWLoP4wkX5K1kl Yes, I would like to participate in the study ... Male 22 Undergraduate Program Salaried/Employee/Consultant in a sector other... 5 6 5 5 4 5 5 6 (strongly agree) 5 4 70.0 15.0 0 0 15.0 0 0.0 2 1 2 Cancer screening test The higher the quality of the study, the more ... The growth rate over five years will be exactl... It is not possible to determine which of the a... Vase The medication increases recovery by 2% More than $102 More than today with the money in this account False 500 50 0.10 9 out of 59 25.0 20 They are equal < INR 500,000 800000.0
368 R_42y9IJJWALsuHPF Yes, I would like to participate in the study ... Male 28 Undergraduate Program Salaried/Employee/Consultant in a sector other... 6 7 6 (strongly agree) 3 5 5 6 (strongly agree) 6 (strongly agree) 6 (strongly agree) 5 4.0 0.0 0 0 6.0 40 50.0 2 1 1 HIV test,Fingerprint,DNA test,Cancer screening... The higher the quality of the study, the more ... The growth rate over five years will be betwee... 70 in 100 people prior to the intervention to ... Vase The medication increases recovery by 100% More than $102 Less than today with the money in this account False 600 10 0.10 9 out of 10 25.0 5 Hertinol INR 1500,001 – INR 30,00,000 4500000.0
369 R_8k6D0jzzHCC5X3Z Yes, I would like to participate in the study ... Male 25 Undergraduate Program Salaried/Employee/Consultant in a sector other... 7 (willing to take risk) 8 6 (strongly agree) 5 5 4 6 (strongly agree) 6 (strongly agree) 6 (strongly agree) 5 5.0 5.0 5 5 30.0 20 30.0 2 1 1 DNA test The higher the quality of the study, the more ... It is not possible to predict the growth rate ... 5 in 100 people prior to the intervention to 6... Vase The medication increases recovery by 100% More than $102 Less than today with the money in this account False 500 500 50.00 59 out of 1000 25.0 10 Hertinol > INR 75,00,000 8000000.0

270 rows × 44 columns

In [8]:
d11["Q4"].value_counts()
Out[8]:
Q4
Salaried/Employee/Consultant in a sector other than Finance    167
Not employed                                                    50
Entrepreneur/Business Owner in a sector other than Finance      30
Stock analyst                                                   12
Insurance agent, etc                                             7
Retired                                                          3
Venture capital/private equity                                   1
Name: count, dtype: int64
In [9]:
d11["age"] = d11["Q2"]

# Age groups/rec = [2,3,4]
# Age group 2 = 18 to 35 y/o
# Age group 3 = 36 to 55 y/o
# Age group 4 = 56 to 75 y/o (75 y/o, i.e, within the scope of the data we have, it can mean 60 and above also)

d11["age_rec"] = np.where( (d11["age"] >= 18) & (d11["age"] <= 35), 2,
                          np.where( (d11["age"] >= 36) & (d11["age"] <= 55), 3,
                                   np.where( (d11["age"] >= 56), 4, 0
                                           )
                                  )
                         )


# Secondary upto 10 – ISCED 3
# Senior Secondary upto 12 - ISCED 3 
# Diploma and voca – ISCED 2
# UG – ISCED 2
# PG – ISCED 1
# PhD and higher – ISCED 1

d11["isced"] = np.where(d11["Q3"] == "Post-Graduate Program", 1,
                        np.where(d11["Q3"] == "Undergraduate Program", 2,
                                 np.where(d11["Q3"] == "Ph.D. and higher", 1,
                                          np.where(d11["Q3"] == "Diploma and Vocational Training", 2,
                                                   np.where(d11["Q3"] == "Secondary School (11th to 12th Std.)", 3,
                                                            np.where( d11["Q3"] == "Primary School (up to 10th Std.)", 3,
                                                                     np.where( d11["Q3"] == "M.Phil.", 1, 0
                                                                             )
                                                                    )
                                                           )
                                                  )
                                         )
                                )
                       )

d11["income"] = np.where(d11["Q15a"] == "< INR 500,000", 1,
                         np.where(d11["Q15a"] == "INR 500,001 – INR 15,00,000", 2,
                                  np.where(d11["Q15a"] == "INR 1500,001 – INR 30,00,000", 3,
                                           np.where(d11["Q15a"] == "INR 30,00,001 – INR 50,00,000", 5,
                                                    np.where(d11["Q15a"] == "INR 50,00,001 – INR 75,00,000", 6,
                                                             np.where( d11["Q15a"] == "> INR 75,00,000", 6,0
                                                                     )
                                                            )
                                                   )
                                           )
                                  )
                         )

d11["wealth"] = d11["Q14b.1"]

Scoring¶

In [10]:
matchCol = ["q8_2_1", "q8_2_2", "q8_2_3", "q8_2_4", "q8_2_5", "q8_3", "q8_4", "q8_5berlin_1", 
            "q8_5london_1", "q8_5paris_1", "q8_6", "q8_7", "q9_1_1", "q9_2_1", "q9_3",
            "q10_1_1", "q10_2_1", "q10_3_1", "q10_4"]
d11[ matchCol ] = 0

d11.columns
Out[10]:
Index(['ResponseId', 'Q0', 'Q1', 'Q2', 'Q3', 'Q4', 'Q5_1', 'Q6_1', 'Q8_1',
       'Q8_2', 'Q8_3', 'Q8_4', 'Q8_5', 'Q8_6', 'Q8_7', 'Q8_8', 'Q9b_1',
       'Q9b_4', 'Q9b_5', 'Q9b_6', 'Q9b_7', 'Q9b_8', 'Q9b_9', 'Q11a_1',
       'Q11a_2', 'Q11a_3', 'Q11b', 'Q11c', 'Q11d', 'Q11h', 'Attention Check',
       'Q11i', 'Q12a', 'Q12b', 'Q12c', 'Q13a', 'Q13b', 'Q13c', 'Q13d', 'Q14a',
       'Q14b', 'Q14c', 'Q15a', 'Q14b.1', 'age', 'age_rec', 'isced', 'income',
       'wealth', 'q8_2_1', 'q8_2_2', 'q8_2_3', 'q8_2_4', 'q8_2_5', 'q8_3',
       'q8_4', 'q8_5berlin_1', 'q8_5london_1', 'q8_5paris_1', 'q8_6', 'q8_7',
       'q9_1_1', 'q9_2_1', 'q9_3', 'q10_1_1', 'q10_2_1', 'q10_3_1', 'q10_4'],
      dtype='object')
In [11]:
d11["q8_2_1"] = np.where(d11["Q11b"].str.contains("HIV test"), 1, 2)
d11["q8_2_2"] = np.where(d11["Q11b"].str.contains("Fingerprint"), 1, 2)
d11["q8_2_3"] = np.where(d11["Q11b"].str.contains("DNA test"), 1, 2)
d11["q8_2_4"] = np.where(d11["Q11b"].str.contains("Cancer screening test"), 1, 2)
d11["q8_2_5"] = np.where(d11["Q11b"].str.contains("Professional horoscope"), 1, 2)

d11["q8_3"] = np.where(d11["Q11c"] == "The lower the quality of the study, the more likely that future studies will change the risk estimate.", 1,
                          np.where(d11["Q11c"] == "The higher the quality of the study, the more likely that future studies will change the risk estimate.", 2,
                                  np.where(d11["Q11c"] == "Irrespective of the quality of the study, future studies will not change the risk estimate.", 3,
                                          np.where(d11["Q11c"] == "Irrespective of the quality of the study, future studies will change the risk estimate substantially anyway.", 4,0
                                                  )
                                          )
                                  )
                         )


d11["q8_4"] = np.where(d11["Q11d"] == "The growth rate will be 0.4% on average each year", 1,
                          np.where(d11["Q11d"] == "The growth rate over five years will be exactly 2%", 2,
                                  np.where(d11["Q11d"] == "The growth rate over five years will be between 1% and 3%", 3,
                                          np.where(d11["Q11d"] == "It is not possible to predict the growth rate with certainty", 4,0
                                                  )
                                          )
                                  )
                         )
In [12]:
d11["q8_5berlin_1"] = np.where(d11["Q11a_1"] == 1, 1, 2)
d11["q8_5london_1"] = np.where(d11["Q11a_1"] == 1, 1, 2)
d11["q8_5paris_1"] = np.where(d11["Q11a_1"] == 1, 1, 2)

d11["q8_6"] = np.where(d11["Q11i"] == "The medication increases recovery by 100%", 1,
                          np.where(d11["Q11i"] == "The medication increases recovery by 50%", 2,
                                   np.where(d11["Q11i"] == "The medication increases recovery by 2%", 3,
                                            np.where(d11["Q11i"] == "None of the above is implied", 4, 0
                                                    )
                                           )
                                  )
                         )

d11["q8_7"] = np.where(d11["Q11h"] == "5 in 100 people prior to the intervention to 6 out of 100 people after the intervention", 1,
                          np.where(d11["Q11h"] == "100 in 10,000 people prior to the intervention to 120 out of 10,000 people after the intervention", 2,
                                   np.where(d11["Q11h"] == "70 in 100 people prior to the intervention to 90 out of 100 people after the intervention", 3,
                                            np.where(d11["Q11h"] == "It is not possible to determine which of the answers is correct given the information provided", 4, 0
                                                    )
                                           )
                                  )
                         )


d11["q9_1_1"] = d11["Q14a"].copy()
d11["q9_2_1"] = d11["Q14b"].copy()

d11["q9_3"] = np.where(d11["Q14c"] == "Crosicol", 1,
                          np.where(d11["Q14c"] == "Hertinol", 2,
                                   np.where(d11["Q14c"] == "They are equal", 3,
                                            np.where(d11["Q14c"] == "Can’t say", 4, 0
                                                    )
                                           )
                                  )
                         )
In [13]:
d11["q10_1_1"] = d11["Q13a"].copy()
d11["q10_2_1"] = d11["Q13b"].copy()
d11["q10_3_1"] = d11["Q13c"].copy()

d11["q10_4"] = np.where(d11["Q13d"] == "9 out of 59", 1,
                          np.where(d11["Q13d"] == "9 out of 10", 2,
                                   np.where(d11["Q13d"] == "59 out of 1000", 3,
                                            np.where(d11["Q13d"] == "59 out of 100", 4, 0
                                                    )
                                           )
                                  )
                         )
In [14]:
d11["ResponseId"].nunique()
Out[14]:
270
In [15]:
scoreColumns = ["certainty1", "certainty2", "certainty3", "certainty4", "certainty5", "uncertainty1", "uncertainty2", "numeracy1", "numeracy2", "numeracy3", "numeracy4", "numeracy5", "graph1", "graph2", "graph3", "riskcalculation1", "riskcalculation2", "riskcalculation3", "riskcalculation4"]
d11[scoreColumns] = 0
In [16]:
# Assigning scores

def scoring1(d11Facet):
    d11Facet.loc[ d11Facet["q8_2_1"] == 2, "certainty1"] = 1
    d11Facet.loc[ d11Facet["q8_2_2"] == 2, "certainty2"] = 1
    d11Facet.loc[ d11Facet["q8_2_3"] == 2, "certainty3"] = 1
    d11Facet.loc[ d11Facet["q8_2_4"] == 2, "certainty4"] = 1
    d11Facet.loc[ d11Facet["q8_2_5"] == 2, "certainty5"] = 1

    d11Facet.loc[ d11Facet["q8_3"] == 1, "uncertainty1"] = 1
    d11Facet.loc[ d11Facet["q8_4"] == 4, "uncertainty2"] = 1

    d11Facet.loc[ d11Facet["q8_5berlin_1"] == 2, "numeracy1"] = 1
    d11Facet.loc[ d11Facet["q8_5london_1"] == 1, "numeracy2"] = 1
    d11Facet.loc[ d11Facet["q8_5paris_1"] == 1, "numeracy3"] = 1
    d11Facet.loc[ d11Facet["q8_6"] == 1, "numeracy4"] = 1
    d11Facet.loc[ d11Facet["q8_7"] == 4, "numeracy5"] = 1

    d11Facet.loc[ d11Facet["q9_1_1"] == 25, "graph1"] = 1
    d11Facet.loc[ d11Facet["q9_2_1"] == 20, "graph2"] = 1
    d11Facet.loc[ d11Facet["q9_3"] == 3, "graph3"] = 1

    d11Facet.loc[ d11Facet["q10_1_1"] == 500, "riskcalculation1"] = 1
    d11Facet.loc[ d11Facet["q10_2_1"] == 10, "riskcalculation2"] = 1
    d11Facet.loc[ (d11Facet["q10_3_1"] == 0.1) | (d11Facet["q10_3_1"] == ".1") | (d11Facet["q10_3_1"] == ",1") , "riskcalculation3"] = 1
    d11Facet.loc[ d11Facet["q10_4"] == 1, "riskcalculation4"] = 1

    # Assigning total scores
    #d11Facet["Certainty score_5"] = d11Facet["certainty1"] + d11Facet["certainty2"] + d11Facet["certainty3"] + d11Facet["certainty4"] + d11Facet["certainty5"]
    #d11Facet["Uncertainty score_5"] = d11Facet["uncertainty1"] + d11Facet["uncertainty2"]

    #d11Facet["Number Comprehension score_5"] = d11Facet["numeracy1"] + d11Facet["numeracy2"] + d11Facet["numeracy3"] + d11Facet["numeracy4"] + d11Facet["numeracy5"]
    #d11Facet["Graph Comprehension score_5"] = d11Facet["graph1"] + d11Facet["graph2"] + d11Facet["graph3"]

    #d11Facet["Calculation score_4"] = d11Facet["riskcalculation1"] + d11Facet["riskcalculation2"] + d11Facet["riskcalculation3"] + d11Facet["riskcalculation4"]

    #d11Facet["Total Score_19"] = d11Facet["Certainty score_5"] + d11Facet["Uncertainty score_5"] + d11Facet["Number Comprehension score_5"] + d11Facet["Graph Comprehension score_5"] + d11Facet["Calculation score_4"]

    return d11Facet
In [17]:
d11Facet = d11.groupby(["ResponseId"]).progress_apply(scoring1)
100%|███████████████████████████████████████████████████████████████████████████████| 270/270 [00:01<00:00, 165.39it/s]
In [18]:
d11Facet
Out[18]:
ResponseId Q0 Q1 Q2 Q3 Q4 Q5_1 Q6_1 Q8_1 Q8_2 Q8_3 Q8_4 Q8_5 Q8_6 Q8_7 Q8_8 Q9b_1 Q9b_4 Q9b_5 Q9b_6 Q9b_7 Q9b_8 Q9b_9 Q11a_1 Q11a_2 Q11a_3 Q11b Q11c Q11d Q11h Attention Check Q11i Q12a Q12b Q12c Q13a Q13b Q13c Q13d Q14a Q14b Q14c Q15a Q14b.1 age age_rec isced income wealth q8_2_1 q8_2_2 q8_2_3 q8_2_4 q8_2_5 q8_3 q8_4 q8_5berlin_1 q8_5london_1 q8_5paris_1 q8_6 q8_7 q9_1_1 q9_2_1 q9_3 q10_1_1 q10_2_1 q10_3_1 q10_4 certainty1 certainty2 certainty3 certainty4 certainty5 uncertainty1 uncertainty2 numeracy1 numeracy2 numeracy3 numeracy4 numeracy5 graph1 graph2 graph3 riskcalculation1 riskcalculation2 riskcalculation3 riskcalculation4
ResponseId
R_1YkMM2lMB9aEuVL 150 R_1YkMM2lMB9aEuVL Yes, I would like to participate in the study ... Female 41 Undergraduate Program Salaried/Employee/Consultant in a sector other... 3 3 3 4 3 3 3 3 3 4 85.0 0.0 0 0 5.0 10 0.0 1 1 1 DNA test The higher the quality of the study, the more ... The growth rate over five years will be betwee... 5 in 100 people prior to the intervention to 6... Vase The medication increases recovery by 50% Less than $102 Exactly the same as today with the money in th... True 1000 10 1.000 59 out of 1000 9.0 20 Crosicol < INR 500,000 25000.0 41 3 2 1 25000.0 2 2 1 2 2 2 3 1 1 1 2 1 9.0 20 1 1000 10 1.000 3 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0
R_401xXJ9E3ZgU9gu 96 R_401xXJ9E3ZgU9gu Yes, I would like to participate in the study ... Male 33 Undergraduate Program Stock analyst 7 (willing to take risk) 8 5 4 5 5 5 6 (strongly agree) 6 (strongly agree) 6 (strongly agree) 0.0 0.0 10 0 30.0 60 0.0 2 1 1 Fingerprint,DNA test The higher the quality of the study, the more ... The growth rate over five years will be betwee... 100 in 10,000 people prior to the intervention... Vase The medication increases recovery by 100% More than $102 Less than today with the money in this account False 500 1 0.001 59 out of 1000 25.0 20 They are equal INR 500,001 – INR 15,00,000 16000000.0 33 2 2 2 16000000.0 2 1 1 2 2 2 3 2 2 2 1 2 25.0 20 3 500 1 0.001 3 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0
R_40VyTmJ6i96wUP4 235 R_40VyTmJ6i96wUP4 Yes, I would like to participate in the study ... Female 34 Post-Graduate Program Not employed 2 0 (no investment experience) 3 2 2 3 3 3 2 3 40.0 25.0 10 10 15.0 0 0.0 1 2 1 DNA test The higher the quality of the study, the more ... It is not possible to predict the growth rate ... It is not possible to determine which of the a... Vase The medication increases recovery by 2% Refuse to answer Less than today with the money in this account Do not know 698 352 1.000 59 out of 1000 30.0 20 Crosicol < INR 500,000 500000.0 34 2 1 1 500000.0 2 2 1 2 2 2 4 1 1 1 3 4 30.0 20 1 698 352 1.000 3 1 1 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0
R_40ZEg7vX3Y7mMQl 184 R_40ZEg7vX3Y7mMQl Yes, I would like to participate in the study ... Female 31 Undergraduate Program Not employed 4 6 2 2 2 1 (strongly disagree) 2 3 4 1 (strongly disagree) 30.0 30.0 10 0 20.0 10 0.0 1 1 1 HIV test,Fingerprint,DNA test,Cancer screening... The higher the quality of the study, the more ... The growth rate will be 0.4% on average each year 70 in 100 people prior to the intervention to ... Vase The medication increases recovery by 2% More than $102 Less than today with the money in this account True 500 10 10.000 59 out of 1000 50.0 20 They are equal < INR 500,000 500000.0 31 2 2 1 500000.0 1 1 1 1 2 2 1 1 1 1 3 3 50.0 20 3 500 10 10.000 3 0 0 0 0 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0
R_40cbsHWzTyKyFxv 53 R_40cbsHWzTyKyFxv Yes, I would like to participate in the study ... Male 38 Undergraduate Program Salaried/Employee/Consultant in a sector other... 5 5 4 6 (strongly agree) 5 4 6 (strongly agree) 6 (strongly agree) 6 (strongly agree) 6 (strongly agree) 45.0 35.0 0 5 15.0 0 0.0 2 1 2 Fingerprint The higher the quality of the study, the more ... The growth rate over five years will be exactl... It is not possible to determine which of the a... Vase The medication increases recovery by 2% More than $102 Exactly the same as today with the money in th... False 1000 100 25.000 9 out of 10 30.0 20 They are equal < INR 500,000 300000.0 38 3 2 1 300000.0 2 1 2 2 2 2 2 2 2 2 3 4 30.0 20 3 1000 100 25.000 2 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 0 0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
R_4xj4ficLsaoMZm9 138 R_4xj4ficLsaoMZm9 Yes, I would like to participate in the study ... Male 20 Undergraduate Program Salaried/Employee/Consultant in a sector other... 4 1 3 2 4 5 5 4 3 6 (strongly agree) 90.0 0.0 0 0 0.0 10 0.0 2 2 1 HIV test Irrespective of the quality of the study, futu... The growth rate will be 0.4% on average each year 5 in 100 people prior to the intervention to 6... Vase The medication increases recovery by 100% More than $102 Exactly the same as today with the money in th... True 500 5 10.000 9 out of 10 26.0 20 Hertinol INR 30,00,001 – INR 50,00,000 800000.0 20 2 2 5 800000.0 1 2 2 2 2 4 1 2 2 2 1 1 26.0 20 2 500 5 10.000 2 0 1 1 1 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0
R_4ygaLyBv8lHSSf7 75 R_4ygaLyBv8lHSSf7 Yes, I would like to participate in the study ... Male 34 Undergraduate Program Entrepreneur/Business Owner in a sector other ... 4 4 6 (strongly agree) 6 (strongly agree) 6 (strongly agree) 5 6 (strongly agree) 1 (strongly disagree) 6 (strongly agree) 6 (strongly agree) 40.0 10.0 10 10 10.0 10 10.0 1 1 2 Fingerprint The higher the quality of the study, the more ... The growth rate will be 0.4% on average each year 70 in 100 people prior to the intervention to ... Vase The medication increases recovery by 2% More than $102 Less than today with the money in this account Refuse to answer 500 999 100.000 9 out of 59 80.0 20 Hertinol < INR 500,000 500000.0 34 2 2 1 500000.0 2 1 2 2 2 2 1 1 1 1 3 3 80.0 20 2 500 999 100.000 1 1 0 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1
R_4yiENHF5RuMjf3P 318 R_4yiENHF5RuMjf3P Yes, I would like to participate in the study ... Male 42 Post-Graduate Program Salaried/Employee/Consultant in a sector other... 5 5 6 (strongly agree) 5 6 (strongly agree) 5 6 (strongly agree) 5 6 (strongly agree) 6 (strongly agree) 20.0 50.0 0 19 10.0 0 1.0 1 2 2 DNA test The higher the quality of the study, the more ... The growth rate over five years will be betwee... 5 in 100 people prior to the intervention to 6... Vase The medication increases recovery by 2% More than $102 Less than today with the money in this account False 500 10 1.000 9 out of 10 25.0 20 They are equal < INR 500,000 600000.0 42 3 1 1 600000.0 2 2 1 2 2 2 3 1 1 1 3 1 25.0 20 3 500 10 1.000 2 1 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0
R_4zPiSk23ayGvFD4 364 R_4zPiSk23ayGvFD4 Yes, I would like to participate in the study ... Male 70 Undergraduate Program Salaried/Employee/Consultant in a sector other... 4 6 4 4 4 4 5 5 5 4 15.0 20.0 10 0 25.0 30 0.0 2 1 1 DNA test The higher the quality of the study, the more ... It is not possible to predict the growth rate ... It is not possible to determine which of the a... Vase The medication increases recovery by 100% More than $102 Less than today with the money in this account False 500 10 1.000 59 out of 1000 25.0 20 Crosicol INR 1500,001 – INR 30,00,000 7000000.0 70 4 2 3 7000000.0 2 2 1 2 2 2 4 2 2 2 1 4 25.0 20 1 500 10 1.000 3 1 1 0 1 1 0 1 1 0 0 1 1 1 1 0 1 1 0 0
R_8k6D0jzzHCC5X3Z 369 R_8k6D0jzzHCC5X3Z Yes, I would like to participate in the study ... Male 25 Undergraduate Program Salaried/Employee/Consultant in a sector other... 7 (willing to take risk) 8 6 (strongly agree) 5 5 4 6 (strongly agree) 6 (strongly agree) 6 (strongly agree) 5 5.0 5.0 5 5 30.0 20 30.0 2 1 1 DNA test The higher the quality of the study, the more ... It is not possible to predict the growth rate ... 5 in 100 people prior to the intervention to 6... Vase The medication increases recovery by 100% More than $102 Less than today with the money in this account False 500 500 50.000 59 out of 1000 25.0 10 Hertinol > INR 75,00,000 8000000.0 25 2 2 6 8000000.0 2 2 1 2 2 2 4 2 2 2 1 1 25.0 10 2 500 500 50.000 3 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0

270 rows × 87 columns

In [19]:
d11 = d11Facet.copy().reset_index(drop = True)
In [20]:
d11["Certainty_3"] = d11["certainty1"] + d11["certainty2"] + d11["certainty3"]
d11["RiskComprehension_3"] = d11["riskcalculation1"] + d11["riskcalculation2"] + d11["riskcalculation4"]
d11["GraphLiteracy_3"] = d11["graph1"] + d11["graph2"] + d11["graph3"]
d11["Numeracy_3"] = d11["numeracy1"] + d11["numeracy2"] + d11["numeracy3"]
d11["Bayesianreasoning_1"] = d11["numeracy4"]
d11["TotalScore_13"] = d11["Certainty_3"] + d11["RiskComprehension_3"] + d11["GraphLiteracy_3"] + d11["Numeracy_3"] + d11["Bayesianreasoning_1"]

d11["Certainty_%"] = d11["Certainty_3"] / 3 * 100
d11["RiskComprehension_%"] = d11["RiskComprehension_3"] / 4 * 100
d11["GraphLiteracy_%"] = d11["GraphLiteracy_3"] / 3 * 100
d11["Numeracy_%"] = d11["Numeracy_3"] / 3 * 100
d11["Bayesianreasoning_%"] = d11["Bayesianreasoning_1"] / 1 * 100

d11["TotalScore_%"] = d11["TotalScore_13"] / 13 * 100


colReq = ["ResponseId", "age", "age_rec", "isced", "income", "wealth", "Certainty_3", "RiskComprehension_3", "GraphLiteracy_3",
          "Numeracy_3", "Bayesianreasoning_1", "Certainty_%", "RiskComprehension_%", "GraphLiteracy_%", "Numeracy_%", "Bayesianreasoning_%",
          "TotalScore_13", "TotalScore_%",]

d12 = d11[colReq].copy()
d12
Out[20]:
ResponseId age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
0 R_1YkMM2lMB9aEuVL 41 3 2 1 25000.0 2 1 1 2 0 66.666667 25.0 33.333333 66.666667 0.0 6 46.153846
1 R_401xXJ9E3ZgU9gu 33 2 2 2 16000000.0 1 1 3 1 1 33.333333 25.0 100.000000 33.333333 100.0 7 53.846154
2 R_40VyTmJ6i96wUP4 34 2 1 1 500000.0 2 0 1 2 0 66.666667 0.0 33.333333 66.666667 0.0 5 38.461538
3 R_40ZEg7vX3Y7mMQl 31 2 2 1 500000.0 0 2 2 2 0 0.000000 50.0 66.666667 66.666667 0.0 6 46.153846
4 R_40cbsHWzTyKyFxv 38 3 2 1 300000.0 2 0 2 1 0 66.666667 0.0 66.666667 33.333333 0.0 5 38.461538
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
265 R_4xj4ficLsaoMZm9 20 2 2 5 800000.0 2 1 1 1 1 66.666667 25.0 33.333333 33.333333 100.0 6 46.153846
266 R_4ygaLyBv8lHSSf7 34 2 2 1 500000.0 2 2 1 2 0 66.666667 50.0 33.333333 66.666667 0.0 7 53.846154
267 R_4yiENHF5RuMjf3P 42 3 1 1 600000.0 2 2 3 2 0 66.666667 50.0 100.000000 66.666667 0.0 9 69.230769
268 R_4zPiSk23ayGvFD4 70 4 2 3 7000000.0 2 2 2 1 1 66.666667 50.0 66.666667 33.333333 100.0 8 61.538462
269 R_8k6D0jzzHCC5X3Z 25 2 2 6 8000000.0 2 1 1 1 1 66.666667 25.0 33.333333 33.333333 100.0 6 46.153846

270 rows × 18 columns

In [21]:
df2 = pd.concat([d01, d12], axis = 0).reset_index(drop = True)
In [22]:
df2
Out[22]:
ResponseId age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
0 00dn8csjzlekx6gzhrcv00dn8csj32tz 30.5 2 2 2 50000.0 0 0 1 1 0 0.000000 0.0 33.333333 33.333333 0.0 2 14.285714
1 00ujdxbfoya0donu8r00ujcjdkojc99x 30.5 2 2 1 1500000.0 0 1 1 2 0 0.000000 25.0 33.333333 66.666667 0.0 4 28.571429
2 022xoawhrghfhv4a1g022xmz7hb0m41f 50.5 3 2 1 15000000.0 0 1 1 2 0 0.000000 25.0 33.333333 66.666667 0.0 4 28.571429
3 02pxtdbyibecqqfvwlw02pxwfbane9zd 50.5 3 1 2 3000000.0 0 0 1 3 0 0.000000 0.0 33.333333 100.000000 0.0 4 28.571429
4 037aefjdt26mnjd102nz0pk037aedfhc 50.5 3 1 2 7000000.0 2 1 1 1 0 66.666667 25.0 33.333333 33.333333 0.0 5 35.714286
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
901 R_4xj4ficLsaoMZm9 20.0 2 2 5 800000.0 2 1 1 1 1 66.666667 25.0 33.333333 33.333333 100.0 6 46.153846
902 R_4ygaLyBv8lHSSf7 34.0 2 2 1 500000.0 2 2 1 2 0 66.666667 50.0 33.333333 66.666667 0.0 7 53.846154
903 R_4yiENHF5RuMjf3P 42.0 3 1 1 600000.0 2 2 3 2 0 66.666667 50.0 100.000000 66.666667 0.0 9 69.230769
904 R_4zPiSk23ayGvFD4 70.0 4 2 3 7000000.0 2 2 2 1 1 66.666667 50.0 66.666667 33.333333 100.0 8 61.538462
905 R_8k6D0jzzHCC5X3Z 25.0 2 2 6 8000000.0 2 1 1 1 1 66.666667 25.0 33.333333 33.333333 100.0 6 46.153846

906 rows × 18 columns

In [ ]:
 
In [ ]:
 

GRAPHS¶

In [23]:
# The following graph represents frequency of each data point on "TotalScore_13" or the total score out of 19 questions across the sample.

df2['TotalScore_13'].plot(kind = 'hist', xticks = np.arange(0, 15, step=1), xlabel = 'TotalScore_13', title = 'Frequency of Scores' )
Out[23]:
<Axes: title={'center': 'Frequency of Scores'}, xlabel='TotalScore_13', ylabel='Frequency'>
No description has been provided for this image
In [24]:
# Absolute mean scores for each facet

(df2[['Certainty_3','RiskComprehension_3','GraphLiteracy_3','Numeracy_3','Bayesianreasoning_1','TotalScore_13']].mean(axis = 0)).plot(kind = 'bar', title = 'Absolute mean of scores for above data set')
Out[24]:
<Axes: title={'center': 'Absolute mean of scores for above data set'}>
No description has been provided for this image
In [25]:
# Normalised mean scores for each facet

df2[['Certainty_%','RiskComprehension_%','GraphLiteracy_%','Numeracy_%','Bayesianreasoning_%','TotalScore_%']].mean(axis = 0).plot(kind = 'bar', title = 'Normalised mean of scores for above data set')
Out[25]:
<Axes: title={'center': 'Normalised mean of scores for above data set'}>
No description has been provided for this image
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [26]:
# DF3 = Sorted by income

df3 = df2.sort_values(by = 'income')
df3 = df3.reset_index(drop = True)
df3.drop(df3[df3['income'] == 7].index, inplace = True)

df3
Out[26]:
ResponseId age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
0 R_4EaOO3SIpDoBOQ7 33.0 2 2 1 2500000.0 0 3 3 2 1 0.000000 75.0 100.000000 66.666667 100.0 9 69.230769
1 tmkt2yy447ml5n5xzvtmkt2yghkchd0i 30.5 2 1 1 1500000.0 1 2 1 3 0 33.333333 50.0 33.333333 100.000000 0.0 7 50.000000
2 abucqbywl1kpsyqxf6pabucqbyuj9d1t 30.5 2 1 1 1000000.0 0 2 2 2 0 0.000000 50.0 66.666667 66.666667 0.0 6 42.857143
3 lisjggm1u63hbw5au9dlis5v74im02su 40.5 3 1 1 470000.0 0 1 1 2 0 0.000000 25.0 33.333333 66.666667 0.0 4 28.571429
4 R_4KoJRZGedem1yYC 28.0 2 1 1 400000.0 2 2 1 2 1 66.666667 50.0 33.333333 66.666667 100.0 8 61.538462
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
901 xnbk00s7gpypscogm7i8w6xnbk0ndi7c 40.5 3 1 6 50000000.0 0 2 3 3 1 0.000000 50.0 100.000000 100.000000 100.0 9 64.285714
902 R_4ogXvXRdf6xjG2Z 26.0 2 2 6 650000.0 1 2 0 1 0 33.333333 50.0 0.000000 33.333333 0.0 4 30.769231
903 x4cenwxf77ta9w8t33vx4cenwxmm8ygb 70.5 4 1 6 50000000.0 1 3 1 3 1 33.333333 75.0 33.333333 100.000000 100.0 9 64.285714
904 i4ipejjfq0rnwbbi4ipe025xluvm5s8d 40.5 3 1 6 850000.0 1 0 0 1 1 33.333333 0.0 0.000000 33.333333 100.0 3 21.428571
905 R_8k6D0jzzHCC5X3Z 25.0 2 2 6 8000000.0 2 1 1 1 1 66.666667 25.0 33.333333 33.333333 100.0 6 46.153846

906 rows × 18 columns

In [27]:
# Absolute mean score for each facet (Sort by Income)

df3[['Certainty_3','RiskComprehension_3','GraphLiteracy_3','Numeracy_3','Bayesianreasoning_1','TotalScore_13']].mean(axis = 0).plot(kind = 'bar', title = 'Absolute mean score for each facet (Sort by Income)')
Out[27]:
<Axes: title={'center': 'Absolute mean score for each facet (Sort by Income)'}>
No description has been provided for this image
In [28]:
# Normalised mean score for each facet (Sort by Income)

(df3[['Certainty_%','RiskComprehension_%','GraphLiteracy_%','Numeracy_%','Bayesianreasoning_%','TotalScore_%']].mean(axis = 0)).plot(kind = 'bar', title = 'Normalised mean score for each facet (Sort by Income)')
Out[28]:
<Axes: title={'center': 'Normalised mean score for each facet (Sort by Income)'}>
No description has been provided for this image
In [29]:
# Normalised mean of each facet as a numerical (sorted by income)

df3.groupby('income')[['Certainty_%','RiskComprehension_%','GraphLiteracy_%','Numeracy_%','Bayesianreasoning_%','TotalScore_%']].mean()
Out[29]:
Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_%
income
1 38.400000 30.600000 44.000000 54.133333 24.800000 41.494505
2 25.965858 33.153639 45.193172 54.896676 26.684636 39.268683
3 25.450450 30.236486 38.963964 57.207207 27.702703 37.251262
4 21.739130 28.804348 32.608696 56.521739 23.913043 33.695652
5 25.531915 28.723404 42.553191 47.517730 36.170213 36.310498
6 25.757576 30.681818 34.090909 49.242424 25.000000 34.640360
In [30]:
# Count of responses for each category (sorted by income)

df3.groupby('income')[['ResponseId']].count()
Out[30]:
ResponseId
income
1 250
2 371
3 148
4 46
5 47
6 44
In [31]:
# Absolute mean of Total Facet score line plot (sorted by income)

df3.groupby('income')[['TotalScore_13']].mean().plot( kind = 'line', title = 'Absolute mean of Total Facet score line plot (sorted by income)').legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[31]:
<matplotlib.legend.Legend at 0x27ee11ae790>
No description has been provided for this image
In [32]:
# Absolute mean of each Facet score line plot (sorted by income)

df3.groupby('income')[['Certainty_3','RiskComprehension_3','GraphLiteracy_3','Numeracy_3','Bayesianreasoning_1']].mean().plot( kind = 'line', title = 'Absolute Facet scores mean line plot').legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[32]:
<matplotlib.legend.Legend at 0x27ee1752f10>
No description has been provided for this image
In [33]:
# Normalised mean of each Facet score line plot (sorted by income)


df3.groupby('income')[['Certainty_%','RiskComprehension_%','GraphLiteracy_%','Numeracy_%','Bayesianreasoning_%', 'TotalScore_%']].mean().plot( kind = 'line', title = 'Normalised mean of each Facet score line plot (sorted by income)').legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[33]:
<matplotlib.legend.Legend at 0x27ee16c9050>
No description has been provided for this image
In [34]:
# Normalised mean of each Facet score stacked plot (sorted by income)

df3.groupby('income')[['Certainty_%','RiskComprehension_%','GraphLiteracy_%','Numeracy_%','Bayesianreasoning_%']].mean().plot( kind = 'bar', title = 'Normalised mean of each Facet score stacked plot (sorted by income)', stacked = True).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[34]:
<matplotlib.legend.Legend at 0x27ee117dd50>
No description has been provided for this image
In [35]:
# Normalised mean of each Facet score hist plot (sorted by income)

df3.groupby('income')[['Certainty_%','RiskComprehension_%','GraphLiteracy_%','Numeracy_%','Bayesianreasoning_%','TotalScore_%']].mean().T.plot(kind = 'bar', title = 'Normalised mean scores for each facet for each wealth response category').legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[35]:
<matplotlib.legend.Legend at 0x27ee0b0db10>
No description has been provided for this image
In [36]:
# Trend line for Absolute Total Facet Score vs income

sns.regplot (data = df3, x = 'income', y = 'TotalScore_13')
Out[36]:
<Axes: xlabel='income', ylabel='TotalScore_13'>
No description has been provided for this image
In [37]:
# Trend line for Absolute Independent Facet Score vs income reponses

fig, ax = plt.subplots(figsize=(6, 6))

sns.regplot (data = df3, x = 'income', y = 'Certainty_3', fit_reg=True, ci=None, ax=ax, label='Certainty_3')
sns.regplot (data = df3, x = 'income', y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax, label='RiskComprehension_3')
sns.regplot (data = df3, x = 'income', y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax, label='Numeracy_3')
sns.regplot (data = df3, x = 'income', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax, label='GraphLiteracy_3')
sns.regplot (data = df3, x = 'income', y = 'Bayesianreasoning_1',fit_reg=True, ci=None, ax=ax, label='Bayesianreasoning_1' )

ax.set(ylabel='Scores', xlabel='income')
ax.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [38]:
# Violine Plot for TotalScore_13 for each entry under income.

sns.violinplot( data = df3, x = 'income', y = 'TotalScore_13')
Out[38]:
<Axes: xlabel='income', ylabel='TotalScore_13'>
No description has been provided for this image
In [39]:
# Violine Plot for Certainty_3 for each entry under income.

sns.violinplot( data = df3, x = 'income', y = 'Certainty_3')
Out[39]:
<Axes: xlabel='income', ylabel='Certainty_3'>
No description has been provided for this image
In [40]:
# Violine Plot for RiskComprehension_3 for each entry under income.

sns.violinplot( data = df3, x = 'income', y = 'RiskComprehension_3')
Out[40]:
<Axes: xlabel='income', ylabel='RiskComprehension_3'>
No description has been provided for this image
In [41]:
# Violine Plot for GraphLiteracy_3 for each entry under income.

sns.violinplot( data = df3, x = 'income', y = 'GraphLiteracy_3')
Out[41]:
<Axes: xlabel='income', ylabel='GraphLiteracy_3'>
No description has been provided for this image
In [42]:
# Violine Plot for Numeracy_3 for each entry under income.

sns.violinplot( data = df3, x = 'income', y = 'Numeracy_3')
Out[42]:
<Axes: xlabel='income', ylabel='Numeracy_3'>
No description has been provided for this image
In [43]:
# Violine Plot for TotalScore_13 for each entry under income.

sns.violinplot( data = df3, x = 'income', y = 'Bayesianreasoning_1')
Out[43]:
<Axes: xlabel='income', ylabel='Bayesianreasoning_1'>
No description has been provided for this image
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [44]:
# Data Frame 2 or df2 is an aggregate data on facet total scores and over all total score, along with wealth and income data vs each response. 
# This data set is also sorted by wealth with all responses 'NA' removed.
# We also assign quartiles ranking each response according to this sort.

df4 = df2.sort_values(by = 'wealth')
df4 = df4.reset_index(drop = True)
df4 = df4.dropna(axis = 0, subset = 'wealth')
df4.insert(loc = len(df4.columns), column = "Quartile Number", value = pd.qcut(df4["wealth"],q = 4, labels = False ) + 1, allow_duplicates = 'False')

df4
Out[44]:
ResponseId age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_% Quartile Number
0 R_4MJAzsNYYA69Y8p 27.0 2 3 1 0.0 2 1 1 2 1 66.666667 25.0 33.333333 66.666667 100.0 7 53.846154 1
1 y139mcxc619h0ooosy139muk14mpfpvm 30.5 2 3 1 0.0 3 1 0 2 0 100.000000 25.0 0.000000 66.666667 0.0 6 42.857143 1
2 R_41bfnamM0zpH94i 30.0 2 1 2 0.0 2 2 1 1 1 66.666667 50.0 33.333333 33.333333 100.0 7 53.846154 1
3 2rkur9ckjvsyz36zmayz1zw2rkur9ckn 40.5 3 1 3 0.0 1 0 0 2 0 33.333333 0.0 0.000000 66.666667 0.0 3 21.428571 1
4 e7ty2tbwa1hcmte7ty683aw64pla7689 30.5 2 2 1 0.0 0 1 1 1 0 0.000000 25.0 33.333333 33.333333 0.0 3 21.428571 1
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
901 lmoqk1qcf44jqqudwkplmoqk18cao0fs 40.5 3 1 2 400000000.0 1 1 1 1 0 33.333333 25.0 33.333333 33.333333 0.0 4 28.571429 4
902 4udfypw7lf8mmgjmxr4d4udfym4sx1sf 40.5 3 1 3 500000000.0 0 0 0 2 1 0.000000 0.0 0.000000 66.666667 100.0 3 21.428571 4
903 35zux4sc18rplyz3dc85z35zux4sdfm4 21.5 2 2 4 500000000.0 1 1 0 1 0 33.333333 25.0 0.000000 33.333333 0.0 3 21.428571 4
904 wn9mk6m1k8o10l1twn9mk6b4z7l7yvhc 50.5 3 1 3 500000000.0 1 2 3 3 0 33.333333 50.0 100.000000 100.000000 0.0 9 64.285714 4
905 zcj7ldokhyo6217f9sriwizcj7ldodwt 40.5 3 2 3 600000000.0 1 3 1 1 0 33.333333 75.0 33.333333 33.333333 0.0 6 42.857143 4

906 rows × 19 columns

In [45]:
# Absolute mean score for each facet (Sort by Wealth)

df4[['Certainty_3','RiskComprehension_3','Numeracy_3','GraphLiteracy_3','Bayesianreasoning_1','TotalScore_13']].mean(axis = 0).plot(kind = 'bar', title = 'Absolute mean score for each facet (Sort by Wealth)')
Out[45]:
<Axes: title={'center': 'Absolute mean score for each facet (Sort by Wealth)'}>
No description has been provided for this image
In [46]:
# Normalised mean score for each facet (Sort by Wealth)

(df4[['Certainty_%','RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%','TotalScore_%']].mean(axis = 0)).plot(kind = 'bar', title = 'Normalised mean score for each facet (Sort by Wealth)')
Out[46]:
<Axes: title={'center': 'Normalised mean score for each facet (Sort by Wealth)'}>
No description has been provided for this image
In [47]:
# Line Plot of Absolute Total Facet score vs sorted wealth

df4.plot(use_index = 'True' , kind = 'line', y = ['TotalScore_13'], title = 'Total responses line plot sorted by Wealth',xlabel = 'Unique responses sorted by wealth', ylabel = 'TotalScore_13')
Out[47]:
<Axes: title={'center': 'Total responses line plot sorted by Wealth'}, xlabel='Unique responses sorted by wealth', ylabel='TotalScore_13'>
No description has been provided for this image
In [48]:
# Absolute Facet scores line plot from low to high wealth 
# I do understand that this is non readable

df4[['Certainty_3','RiskComprehension_3','Numeracy_3','GraphLiteracy_3','Bayesianreasoning_1']].plot( kind = 'line', title = 'Absolute Facet scores line plot', use_index = True).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[48]:
<matplotlib.legend.Legend at 0x27ee1374a90>
No description has been provided for this image
In [49]:
# Trend line for Absolute Total Facet Score vs unique wealth reponses

sns.regplot (data = df4, x = df4.index, y = 'TotalScore_13')
Out[49]:
<Axes: ylabel='TotalScore_13'>
No description has been provided for this image
In [50]:
# Trend line for Absolute Independent Facet Score vs wealth reponses

fig1, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df4, x = df4.index, y = 'Certainty_3', fit_reg=True, ci=None, ax=ax1, label='Certainty_3')
sns.regplot (data = df4, x = df4.index, y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax1, label='RiskComprehension_3')
sns.regplot (data = df4, x = df4.index, y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax1, label='Numeracy_3')
sns.regplot (data = df4, x = df4.index, y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax1, label='GraphLiteracy_3')
sns.regplot (data = df4, x = df4.index, y = 'Bayesianreasoning_1',fit_reg=True, ci=None, ax=ax1, label='Bayesianreasoning_1' )

ax1.set(ylabel='Scores', xlabel='wealth')
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [51]:
# Count of number of responses under each quartile

df4.groupby('Quartile Number')[['Quartile Number']].count()
Out[51]:
Quartile Number
Quartile Number
1 240
2 229
3 229
4 208
In [52]:
df4.loc[df4['Quartile Number']==1]
Out[52]:
ResponseId age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_% Quartile Number
0 R_4MJAzsNYYA69Y8p 27.0 2 3 1 0.0 2 1 1 2 1 66.666667 25.0 33.333333 66.666667 100.0 7 53.846154 1
1 y139mcxc619h0ooosy139muk14mpfpvm 30.5 2 3 1 0.0 3 1 0 2 0 100.000000 25.0 0.000000 66.666667 0.0 6 42.857143 1
2 R_41bfnamM0zpH94i 30.0 2 1 2 0.0 2 2 1 1 1 66.666667 50.0 33.333333 33.333333 100.0 7 53.846154 1
3 2rkur9ckjvsyz36zmayz1zw2rkur9ckn 40.5 3 1 3 0.0 1 0 0 2 0 33.333333 0.0 0.000000 66.666667 0.0 3 21.428571 1
4 e7ty2tbwa1hcmte7ty683aw64pla7689 30.5 2 2 1 0.0 0 1 1 1 0 0.000000 25.0 33.333333 33.333333 0.0 3 21.428571 1
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
235 R_4E8y8As6xnil1bb 33.0 2 2 1 300000.0 2 0 1 1 0 66.666667 0.0 33.333333 33.333333 0.0 4 30.769231 1
236 R_44JhmFf8xrsm6PL 23.0 2 1 1 300000.0 2 2 2 1 0 66.666667 50.0 66.666667 33.333333 0.0 7 53.846154 1
237 R_4C7Jz3pXbEvgLok 24.0 2 2 1 300000.0 2 3 1 2 1 66.666667 75.0 33.333333 66.666667 100.0 9 69.230769 1
238 R_4LpKzETTwb61UT1 28.0 2 1 1 300000.0 1 3 2 1 0 33.333333 75.0 66.666667 33.333333 0.0 7 53.846154 1
239 R_4YaC4Cs9ubEg8aR 27.0 2 2 1 300000.0 1 2 3 1 1 33.333333 50.0 100.000000 33.333333 100.0 8 61.538462 1

240 rows × 19 columns

In [53]:
# This graph is basically a line plot of the TotalScore_13 across first quartile unique responses which are ordered by income

df4.loc[df4['Quartile Number']==1].plot(use_index = 'True' , kind = 'line', y = ['TotalScore_13'], title = 'Total Score line plot sorted by Wealth Q1',xlabel = 'Unique responses', ylabel = 'TotalScore_13')
Out[53]:
<Axes: title={'center': 'Total Score line plot sorted by Wealth Q1'}, xlabel='Unique responses', ylabel='TotalScore_13'>
No description has been provided for this image
In [54]:
# Trend line for Absolute Total Facet Score vs unique Q14. Income reponses in Quartile 1

sns.regplot (data = df4.loc[df4['Quartile Number']==1], x = df4.loc[df4['Quartile Number']==1].index, y = 'TotalScore_13')
Out[54]:
<Axes: ylabel='TotalScore_13'>
No description has been provided for this image
In [55]:
# Trend line for Absolute Independent Facet Score vs wealth reponses in Quartile 1

fig1, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df4.loc[df4['Quartile Number']==1], x = df4.loc[df4['Quartile Number']==1].index, y = 'Certainty_3', fit_reg=True, ci=None, ax=ax2, label='Certainty_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==1], x = df4.loc[df4['Quartile Number']==1].index, y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax2, label='RiskComprehension_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==1], x = df4.loc[df4['Quartile Number']==1].index, y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax2, label='Numeracy_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==1], x = df4.loc[df4['Quartile Number']==1].index, y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax2, label='GraphLiteracy_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==1], x = df4.loc[df4['Quartile Number']==1].index, y = 'Bayesianreasoning_1',fit_reg=True, ci=None, ax=ax2, label='Bayesianreasoning_1' )

ax2.set(ylabel='Scores', xlabel='wealth')
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [ ]:
 
In [56]:
df4.loc[df4['Quartile Number']==2]
Out[56]:
ResponseId age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_% Quartile Number
240 9vob2u1c6rq0f6v9vob2ds01nmccl00r 50.5 3 1 2 350000.0 0 1 2 2 0 0.000000 25.0 66.666667 66.666667 0.0 5 35.714286 2
241 istj39htyy0gb6icisdl6lk7zoabotd5 30.5 2 2 1 350000.0 2 0 0 2 1 66.666667 0.0 0.000000 66.666667 100.0 5 35.714286 2
242 p7ung37hpf0ejr08izmp7u2wron7wo0a 50.5 3 2 2 350000.0 1 1 2 3 0 33.333333 25.0 66.666667 100.000000 0.0 7 50.000000 2
243 qqsa84yklzt7mi9qqsa9kp15tsjflbpn 30.5 2 2 2 350000.0 0 1 1 2 1 0.000000 25.0 33.333333 66.666667 100.0 5 35.714286 2
244 sm67z605u7x7he9zjss0qdbjsm67z6wc 21.5 2 1 3 350000.0 1 3 1 0 0 33.333333 75.0 33.333333 0.000000 0.0 5 35.714286 2
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
464 mohs0uis6exfikhnm2mohu6jsby2s4g3 30.5 2 1 2 1000000.0 0 2 1 3 1 0.000000 50.0 33.333333 100.000000 100.0 7 50.000000 2
465 8bkbabwbsdxut8bkba8zmczwciojohj6 30.5 2 1 3 1000000.0 0 1 1 3 0 0.000000 25.0 33.333333 100.000000 0.0 5 35.714286 2
466 R_4vy8lWFpUdr72G5 28.0 2 1 2 1000000.0 2 2 1 2 0 66.666667 50.0 33.333333 66.666667 0.0 7 53.846154 2
467 R_42xI7hoQbmBNStm 24.0 2 1 1 1000000.0 2 2 1 1 0 66.666667 50.0 33.333333 33.333333 0.0 6 46.153846 2
468 8q6vzofv5tq9lyy7ad8d5e58q6vzofve 21.5 2 2 2 1000000.0 0 1 2 3 0 0.000000 25.0 66.666667 100.000000 0.0 6 42.857143 2

229 rows × 19 columns

In [57]:
# This graph is basically a line plot of the TotalScore_13 across second quartile unique responses which are ordered by income

df4.loc[df4['Quartile Number']==2].plot(use_index = 'True' , kind = 'line', y = ['TotalScore_13'], title = 'Total Score line plot sorted by Wealth Q1',xlabel = 'Unique responses', ylabel = 'TotalScore_13')
Out[57]:
<Axes: title={'center': 'Total Score line plot sorted by Wealth Q1'}, xlabel='Unique responses', ylabel='TotalScore_13'>
No description has been provided for this image
In [58]:
# Trend line for Absolute Total Facet Score vs unique wealth reponses in Quartile 2

sns.regplot (data = df4.loc[df4['Quartile Number']==2], x = df4.loc[df4['Quartile Number']==2].index, y = 'TotalScore_13')
Out[58]:
<Axes: ylabel='TotalScore_13'>
No description has been provided for this image
In [59]:
# Trend line for Absolute Independent Facet Score vs wealth reponses in Quartile 2

fig1, ax3 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df4.loc[df4['Quartile Number']==2], x = df4.loc[df4['Quartile Number']==2].index, y = 'Certainty_3', fit_reg=True, ci=None, ax=ax3, label='Certainty_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==2], x = df4.loc[df4['Quartile Number']==2].index, y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax3, label='RiskComprehension_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==2], x = df4.loc[df4['Quartile Number']==2].index, y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax3, label='Numeracy_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==2], x = df4.loc[df4['Quartile Number']==2].index, y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax3, label='GraphLiteracy_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==2], x = df4.loc[df4['Quartile Number']==2].index, y = 'Bayesianreasoning_1',fit_reg=True, ci=None, ax=ax3, label='Bayesianreasoning_1' )

ax3.set(ylabel='Scores', xlabel='wealth')
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [ ]:
 
In [60]:
df4.loc[df4['Quartile Number']==3]
Out[60]:
ResponseId age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_% Quartile Number
469 10utcgrue12b2xedn0r10utc1is68haw 50.5 3 1 2 1005000.0 0 2 0 2 0 0.000000 50.0 0.000000 66.666667 0.0 4 28.571429 3
470 R_4aVnI292kkUXdvf 33.0 2 2 2 1050000.0 2 0 2 1 0 66.666667 0.0 66.666667 33.333333 0.0 5 38.461538 3
471 4r28kn5y6hze7b830b1z14r28ny2y8ms 21.5 2 1 2 1050000.0 1 1 1 1 0 33.333333 25.0 33.333333 33.333333 0.0 4 28.571429 3
472 7rjksqqby6at13qv93d7rjksvn67w2du 30.5 2 1 2 1100000.0 0 0 3 3 1 0.000000 0.0 100.000000 100.000000 100.0 7 50.000000 3
473 lou9povqizdfljz9255xlou9poadabjr 30.5 2 2 2 1150000.0 0 2 2 2 0 0.000000 50.0 66.666667 66.666667 0.0 6 42.857143 3
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
693 g7ih764s6co9a5zsr4g7ih7631ybkd3v 30.5 2 1 2 5000000.0 0 1 1 1 1 0.000000 25.0 33.333333 33.333333 100.0 4 28.571429 3
694 n5tap3d3v5102n5tay187lv3mwzs3sjy 40.5 3 1 2 5000000.0 0 0 1 1 0 0.000000 0.0 33.333333 33.333333 0.0 2 14.285714 3
695 1g5v4ycgo16lqs9d1g5v5b6b8lnjv6q7 40.5 3 1 4 5000000.0 0 3 2 3 1 0.000000 75.0 66.666667 100.000000 100.0 9 64.285714 3
696 48m1y9k42nj4pk48m43udwbzp5y189z0 30.5 2 2 2 5000000.0 2 2 1 3 0 66.666667 50.0 33.333333 100.000000 0.0 8 57.142857 3
697 93yix8e0e384z7s692mf93yix8edfg15 30.5 2 2 1 5000000.0 3 1 2 0 0 100.000000 25.0 66.666667 0.000000 0.0 6 42.857143 3

229 rows × 19 columns

In [61]:
# This graph is basically a line plot of the TotalScore_13 across third quartile unique responses which are ordered by wealth

df4.loc[df4['Quartile Number']==3].plot(use_index = 'True' , kind = 'line', y = ['TotalScore_13'], title = 'Total Score line plot sorted by Wealth Q3',xlabel = 'Unique responses', ylabel = 'TotalScore_13')
Out[61]:
<Axes: title={'center': 'Total Score line plot sorted by Wealth Q3'}, xlabel='Unique responses', ylabel='TotalScore_13'>
No description has been provided for this image
In [62]:
# Trend line for Absolute Total Facet Score vs unique wealth reponses in Quartile 3

sns.regplot (data = df4.loc[df4['Quartile Number']==3], x = df4.loc[df4['Quartile Number']==3].index, y = 'TotalScore_13')
Out[62]:
<Axes: ylabel='TotalScore_13'>
No description has been provided for this image
In [63]:
# Trend line for Absolute Independent Facet Score vs wealth reponses in Quartile 3

fig1, ax4 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df4.loc[df4['Quartile Number']==3], x = df4.loc[df4['Quartile Number']==3].index, y = 'Certainty_3', fit_reg=True, ci=None, ax=ax4, label='Certainty_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==3], x = df4.loc[df4['Quartile Number']==3].index, y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax4, label='RiskComprehension_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==3], x = df4.loc[df4['Quartile Number']==3].index, y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax4, label='Numeracy_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==3], x = df4.loc[df4['Quartile Number']==3].index, y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax4, label='GraphLiteracy_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==3], x = df4.loc[df4['Quartile Number']==3].index, y = 'Bayesianreasoning_1',fit_reg=True, ci=None, ax=ax4, label='Bayesianreasoning_1' )

ax4.set(ylabel='Scores', xlabel='wealth')
ax4.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [ ]:
 
In [64]:
df4.loc[df4['Quartile Number']==4]
Out[64]:
ResponseId age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_% Quartile Number
698 obftinjncjw2fkari22ghobfti6alubg 30.5 2 1 3 5200000.0 0 1 3 3 0 0.000000 25.0 100.000000 100.000000 0.0 7 50.000000 4
699 rh3ida1re0oohl9crh3ida1s6gcynlil 30.5 2 1 4 5245899.0 3 0 1 1 0 100.000000 0.0 33.333333 33.333333 0.0 5 35.714286 4
700 gdsir9721na619gpfsu9jqk7bi4rhpfs 30.5 2 2 3 5500000.0 1 3 2 2 1 33.333333 75.0 66.666667 66.666667 100.0 9 64.285714 4
701 R_4v7duCkCj5syx0Z 26.0 2 2 2 5500000.0 2 0 2 2 0 66.666667 0.0 66.666667 66.666667 0.0 6 46.153846 4
702 fa4fw88qzaxzjxw31rzchtfa4fw8gn8h 30.5 2 1 3 5500000.0 2 1 0 2 0 66.666667 25.0 0.000000 66.666667 0.0 5 35.714286 4
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
901 lmoqk1qcf44jqqudwkplmoqk18cao0fs 40.5 3 1 2 400000000.0 1 1 1 1 0 33.333333 25.0 33.333333 33.333333 0.0 4 28.571429 4
902 4udfypw7lf8mmgjmxr4d4udfym4sx1sf 40.5 3 1 3 500000000.0 0 0 0 2 1 0.000000 0.0 0.000000 66.666667 100.0 3 21.428571 4
903 35zux4sc18rplyz3dc85z35zux4sdfm4 21.5 2 2 4 500000000.0 1 1 0 1 0 33.333333 25.0 0.000000 33.333333 0.0 3 21.428571 4
904 wn9mk6m1k8o10l1twn9mk6b4z7l7yvhc 50.5 3 1 3 500000000.0 1 2 3 3 0 33.333333 50.0 100.000000 100.000000 0.0 9 64.285714 4
905 zcj7ldokhyo6217f9sriwizcj7ldodwt 40.5 3 2 3 600000000.0 1 3 1 1 0 33.333333 75.0 33.333333 33.333333 0.0 6 42.857143 4

208 rows × 19 columns

In [65]:
# This graph is basically a line plot of the TotalScore_13 across fourth quartile unique responses which are ordered by Wealth

df4.loc[df4['Quartile Number']==4].plot(use_index = 'True' , kind = 'line', y = ['TotalScore_13'], title = 'Total Score line plot sorted by Wealth Q4',xlabel = 'Unique responses', ylabel = 'TotalScore_13')
Out[65]:
<Axes: title={'center': 'Total Score line plot sorted by Wealth Q4'}, xlabel='Unique responses', ylabel='TotalScore_13'>
No description has been provided for this image
In [66]:
# Trend line for Absolute Total Facet Score vs unique wealth reponses in Quartile 4

sns.regplot (data = df4.loc[df4['Quartile Number']==4], x = df4.loc[df4['Quartile Number']==4].index, y = 'TotalScore_13')
Out[66]:
<Axes: ylabel='TotalScore_13'>
No description has been provided for this image
In [67]:
# Trend line for Absolute Independent Facet Score vs wealth reponses in Quartile 4

fig1, ax5 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df4.loc[df4['Quartile Number']==4], x = df4.loc[df4['Quartile Number']==4].index, y = 'Certainty_3', fit_reg=True, ci=None, ax=ax5, label='Certainty_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==4], x = df4.loc[df4['Quartile Number']==4].index, y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax5, label='RiskComprehension_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==4], x = df4.loc[df4['Quartile Number']==4].index, y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax5, label='Numeracy_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==4], x = df4.loc[df4['Quartile Number']==4].index, y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax5, label='GraphLiteracy_3')
sns.regplot (data = df4.loc[df4['Quartile Number']==4], x = df4.loc[df4['Quartile Number']==4].index, y = 'Bayesianreasoning_1',fit_reg=True, ci=None, ax=ax5, label='Bayesianreasoning_1' )

ax5.set(ylabel='Scores', xlabel='wealth')
ax5.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [ ]:
 
In [ ]:
 
In [68]:
# Absolute Total Facet scores mean line plot from low to high Wealth

df4.groupby('Quartile Number')[['TotalScore_13']].mean().plot( kind = 'line', title = 'Absolute Total Facet scores mean line plot low to high wealth', xticks = np.arange(1,5,step = 1)).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[68]:
<matplotlib.legend.Legend at 0x27ee0df5fd0>
No description has been provided for this image
In [69]:
# Absolute Facet scores mean line plot from low to high wealth

df4.groupby('Quartile Number')[['Certainty_3','RiskComprehension_3','Numeracy_3','GraphLiteracy_3','Bayesianreasoning_1']].mean().plot( kind = 'line', title = 'Absolute Facet scores mean line plot low to high wealth', xticks = np.arange(1,5,step = 1)).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[69]:
<matplotlib.legend.Legend at 0x27ee0dafc90>
No description has been provided for this image
In [70]:
# Normalised Facet scores mean line plot from low to high wealth


df4.groupby('Quartile Number')[['Certainty_%','RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%','TotalScore_%']].mean().plot( kind = 'line', title = 'Normalised Facet scores mean line plot from low to high wealth',  xticks = np.arange(1,5,step = 1)).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[70]:
<matplotlib.legend.Legend at 0x27ee76242d0>
No description has been provided for this image
In [71]:
# Normalised mean scores for each facet stacked

df4.groupby('Quartile Number')[['Certainty_%','RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%']].mean().plot( kind = 'bar', title = 'Normalised mean scores for each facet stacked', stacked = True).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[71]:
<matplotlib.legend.Legend at 0x27ee76afad0>
No description has been provided for this image
In [72]:
# Normalised mean scores for each facet for each wealth response Quartile

df4.groupby('Quartile Number')[['Certainty_%','RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%','TotalScore_%']].mean().T.plot(kind = 'bar', title = 'Normalised mean scores for each facet for each wealth response category').legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[72]:
<matplotlib.legend.Legend at 0x27ee2d35950>
No description has been provided for this image
In [73]:
# Trend line for Absolute Total Facet Score vs Quartiles

sns.regplot (data = df4, x = 'Quartile Number', y = 'TotalScore_13')
Out[73]:
<Axes: xlabel='Quartile Number', ylabel='TotalScore_13'>
No description has been provided for this image
In [74]:
# Trend line for Absolute Independent Facet Score vs Quartiles

fig2, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df4, x = 'Quartile Number', y = 'Certainty_3', fit_reg=True, ci=None, ax=ax2, label='Certainty_3')
sns.regplot (data = df4, x = 'Quartile Number', y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax2, label='RiskComprehension_3')
sns.regplot (data = df4, x = 'Quartile Number', y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax2, label='Numeracy_3')
sns.regplot (data = df4, x = 'Quartile Number', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax2, label='GraphLiteracy_3')
sns.regplot (data = df4, x = 'Quartile Number', y = 'Bayesianreasoning_1',fit_reg=True, ci=None, ax=ax2, label='Bayesianreasoning_1' )

ax2.set(ylabel='Scores', xlabel='wealth')
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [75]:
# Violine Plot for TotalScore_13 for each entry under Wealth Quartiles.

sns.violinplot( data = df4, x = 'Quartile Number', y = 'TotalScore_13')
Out[75]:
<Axes: xlabel='Quartile Number', ylabel='TotalScore_13'>
No description has been provided for this image
In [76]:
# Violine Plot for Certainty_3 for each entry under Wealth Quartiles.

sns.violinplot( data = df4, x = 'Quartile Number', y = 'Certainty_3')
Out[76]:
<Axes: xlabel='Quartile Number', ylabel='Certainty_3'>
No description has been provided for this image
In [77]:
# Violine Plot for RiskComprehension_3 for each entry under Wealth Quartiles.

sns.violinplot( data = df4, x = 'Quartile Number', y = 'RiskComprehension_3')
Out[77]:
<Axes: xlabel='Quartile Number', ylabel='RiskComprehension_3'>
No description has been provided for this image
In [78]:
# Violine Plot for GraphLiteracy_3 for each entry under Wealth Quartiles.

sns.violinplot( data = df4, x = 'Quartile Number', y = 'GraphLiteracy_3')
Out[78]:
<Axes: xlabel='Quartile Number', ylabel='GraphLiteracy_3'>
No description has been provided for this image
In [79]:
# Violine Plot for Numeracy_3 for each entry under Wealth Quartiles.

sns.violinplot( data = df4, x = 'Quartile Number', y = 'Numeracy_3')
Out[79]:
<Axes: xlabel='Quartile Number', ylabel='Numeracy_3'>
No description has been provided for this image
In [80]:
# Violine Plot for Bayesianreasoning_1 for each entry under Wealth Quartiles.

sns.violinplot( data = df4, x = 'Quartile Number', y = 'Bayesianreasoning_1')
Out[80]:
<Axes: xlabel='Quartile Number', ylabel='Bayesianreasoning_1'>
No description has been provided for this image
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [81]:
# Data Frame 5 or df5 is an aggregate data on facet total scores and over all total score, along with  education data vs each response. 
# This data set is now sorted by education.

df5 = df2.sort_values(by = 'isced')
df5 = df5.reset_index(drop = True)

df5
Out[81]:
ResponseId age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
0 q3xfqbasiduvbbq3xftruekpjog3g58m 40.5 3 1 2 8000000.0 0 1 3 3 0 0.000000 25.0 100.000000 100.000000 0.0 7 50.000000
1 R_4PjnTbc2vIjogot 31.0 2 1 1 200000.0 2 1 0 1 0 66.666667 25.0 0.000000 33.333333 0.0 4 30.769231
2 R_4Ph1UNtYnaoPSX7 25.0 2 1 3 400000.0 0 2 0 1 0 0.000000 50.0 0.000000 33.333333 0.0 3 23.076923
3 n5tap3d3v5102n5tay187lv3mwzs3sjy 40.5 3 1 2 5000000.0 0 0 1 1 0 0.000000 0.0 33.333333 33.333333 0.0 2 14.285714
4 n6oeoyadt6ogysn6oeoy85zyh3urcai8 50.5 3 1 3 7500000.0 0 2 3 3 1 0.000000 50.0 100.000000 100.000000 100.0 9 64.285714
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
901 tljgvfjwoh3aj1i4hdk8wtphtljgjahd 70.5 4 3 1 2500000.0 1 1 3 3 0 33.333333 25.0 100.000000 100.000000 0.0 8 57.142857
902 y139mcxc619h0ooosy139muk14mpfpvm 30.5 2 3 1 0.0 3 1 0 2 0 100.000000 25.0 0.000000 66.666667 0.0 6 42.857143
903 R_4IY67BO1uGe00kp 39.0 3 3 2 35000.0 2 1 0 1 0 66.666667 25.0 0.000000 33.333333 0.0 4 30.769231
904 ylqbir1q5isg86n72mvz9jylqbirf512 30.5 2 3 2 50000.0 1 0 0 1 0 33.333333 0.0 0.000000 33.333333 0.0 2 14.285714
905 4h20tw0737azsz4k54h20tfe79kj50cq 21.5 2 3 1 100000.0 0 1 0 0 1 0.000000 25.0 0.000000 0.000000 100.0 2 14.285714

906 rows × 18 columns

In [82]:
# since we didnt drop any values, the dataset is essentially the same as df2, but sorted
In [83]:
# Mean of each facet as a % for each category of isced

df5.groupby('isced')[['Certainty_%','RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%']].mean()
Out[83]:
Certainty_% RiskComprehension_% Numeracy_% GraphLiteracy_% Bayesianreasoning_%
isced
1 26.485788 30.862403 54.844961 41.731266 24.418605
2 31.835206 33.005618 54.307116 44.850187 30.056180
3 39.215686 22.794118 50.980392 30.392157 23.529412
In [84]:
# Count of responses for each category isced

df5.groupby('isced')[['ResponseId']].count()
Out[84]:
ResponseId
isced
1 516
2 356
3 34
In [85]:
# Absolute Total Facet scores mean line plot from low to high education

df5.groupby('isced')[['TotalScore_13']].mean().plot( kind = 'line', title = 'Absolute Total Facet scores mean line plot', xticks = np.arange(1,4, step = 1)).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[85]:
<matplotlib.legend.Legend at 0x27ee82ad710>
No description has been provided for this image
In [86]:
# Absolute Facet scores mean line plot from low to high edu

df5.groupby('isced')[['Certainty_3','RiskComprehension_3','Numeracy_3','GraphLiteracy_3','Bayesianreasoning_1']].mean().plot( kind = 'line', title = 'Absolute Facet scores mean line plot', xticks = np.arange(1,4, step = 1)).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[86]:
<matplotlib.legend.Legend at 0x27ee83a4650>
No description has been provided for this image
In [87]:
# Normalised Facet scores mean line plot from low to high edu


df5.groupby('isced')[['Certainty_%','RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%','TotalScore_%']].mean().plot( kind = 'line', title = 'Normalised Facet scores mean line plot', xticks = np.arange(1,4, step = 1)).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[87]:
<matplotlib.legend.Legend at 0x27ee8455b90>
No description has been provided for this image
In [88]:
# Normalised mean scores for each facet stacked

df5.groupby('isced')[['Certainty_%','RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%']].mean().plot( kind = 'bar', title = 'Normalised mean scores for each facet stacked', stacked = True).legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[88]:
<matplotlib.legend.Legend at 0x27ee836f990>
No description has been provided for this image
In [89]:
# Normalised mean scores for each facet for each edu response category

df5.groupby('isced')[['Certainty_%','RiskComprehension_%','Numeracy_%','GraphLiteracy_%','Bayesianreasoning_%','TotalScore_%']].mean().T.plot(kind = 'bar', title = 'Normalised mean scores for each facet for each edu response category').legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
Out[89]:
<matplotlib.legend.Legend at 0x27ee81fe7d0>
No description has been provided for this image
In [90]:
# Trend line for Absolute Total Facet Score vs edu (isced) reponses

sns.regplot (data = df5, x = 'isced', y = 'TotalScore_13')
Out[90]:
<Axes: xlabel='isced', ylabel='TotalScore_13'>
No description has been provided for this image
In [91]:
# Trend line for Absolute Independent Facet Score vs edu (isced) reponses

fig, ax6 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df5, x = 'isced', y = 'Certainty_3', fit_reg=True, ci=None, ax=ax6, label='Certainty_3')
sns.regplot (data = df5, x = 'isced', y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax6, label='RiskComprehension_3')
sns.regplot (data = df5, x = 'isced', y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax6, label='Numeracy_3')
sns.regplot (data = df5, x = 'isced', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax6, label='GraphLiteracy_3')
sns.regplot (data = df5, x = 'isced', y = 'Bayesianreasoning_1',fit_reg=True, ci=None, ax=ax6, label='Bayesianreasoning_1' )

ax6.set(ylabel='Scores', xlabel='isced')
ax6.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [92]:
# Violine Plot for TotalScore_13 for each entry under edu.

sns.violinplot( data = df5, x = 'isced', y = 'TotalScore_13')
Out[92]:
<Axes: xlabel='isced', ylabel='TotalScore_13'>
No description has been provided for this image
In [93]:
# Violine Plot for Certainty_3 for each entry under edu.

sns.violinplot( data = df5, x = 'isced', y = 'Certainty_3')
Out[93]:
<Axes: xlabel='isced', ylabel='Certainty_3'>
No description has been provided for this image
In [94]:
# Violine Plot for RiskComprehension_3 for each entry under edu.

sns.violinplot( data = df5, x = 'isced', y = 'RiskComprehension_3')
Out[94]:
<Axes: xlabel='isced', ylabel='RiskComprehension_3'>
No description has been provided for this image
In [95]:
# Violine Plot for GraphLiteracy_3 for each entry under edu.

sns.violinplot( data = df5, x = 'isced', y = 'GraphLiteracy_3')
Out[95]:
<Axes: xlabel='isced', ylabel='GraphLiteracy_3'>
No description has been provided for this image
In [96]:
# Violine Plot for Numeracy_3 for each entry under edu.

sns.violinplot( data = df5, x = 'isced', y = 'Numeracy_3')
Out[96]:
<Axes: xlabel='isced', ylabel='Numeracy_3'>
No description has been provided for this image
In [97]:
# Violine Plot for TotalScore_13 for each entry under edu.

sns.violinplot( data = df5, x = 'isced', y = 'Bayesianreasoning_1')
Out[97]:
<Axes: xlabel='isced', ylabel='Bayesianreasoning_1'>
No description has been provided for this image
In [98]:
# Descriptive stats for the data set, isced = 1
# NA values of wealth are removed

df6 = df5.dropna(axis = 0, subset = 'wealth')
# df6.drop(df6[df6['wealth'] == 3500000].index, inplace = True)
df6.loc[df6['isced']==1][['wealth']].describe()
Out[98]:
wealth
count 5.160000e+02
mean 1.070025e+07
std 4.079317e+07
min 0.000000e+00
25% 4.000000e+05
50% 1.500000e+06
75% 7.000000e+06
max 5.000000e+08
In [99]:
# Descriptive stats for the data set, isced = 2

df6.loc[df6['isced']==2][['wealth']].describe()
Out[99]:
wealth
count 3.560000e+02
mean 9.234711e+06
std 4.620976e+07
min 0.000000e+00
25% 3.000000e+05
50% 8.000000e+05
75% 4.625000e+06
max 6.000000e+08
In [100]:
# Descriptive stats for the data set, isced = 3

df6.loc[df6['isced']==3][['wealth']].describe()
Out[100]:
wealth
count 3.400000e+01
mean 2.461516e+06
std 5.835454e+06
min 0.000000e+00
25% 3.125000e+04
50% 2.000000e+05
75% 1.875000e+06
max 3.000000e+07
In [101]:
# Trend line for Absolute Tota Facet Score vs wealth reponses sorted by isced and ORDERED by wealth WITH scatter

fig, ax7 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'TotalScore_13', fit_reg=True, ci=None, ax=ax7, label='ISCED = 1')
sns.regplot (data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'TotalScore_13', fit_reg=True, ci=None, ax=ax7, label='ISCED = 2')
sns.regplot (data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'TotalScore_13', fit_reg=True, ci=None, ax=ax7, label='ISCED = 3')

ax7.set(ylabel='Total Scores_19', xlabel='Wealth')
ax7.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [102]:
# Trend line for Absolute Tota Facet Score vs wealth reponses sorted by isced and ORDERED by wealth WITHOUT scatter

fig, ax8 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'TotalScore_13', fit_reg=True, ci=None, ax=ax8, label='ISCED = 1')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'TotalScore_13', fit_reg=True, ci=None, ax=ax8, label='ISCED = 2')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'TotalScore_13', fit_reg=True, ci=None, ax=ax8, label='ISCED = 3')

ax8.set(ylabel='Total Scores_19', xlabel='Wealth')
ax8.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [103]:
# Trend line for Absolute Certainty Score vs wealth reponses sorted by isced and ORDERED by wealth WITHOUT scatter

fig, ax9 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'Certainty_3', fit_reg=True, ci=None, ax=ax9, label='ISCED = 1')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'Certainty_3', fit_reg=True, ci=None, ax=ax9, label='ISCED = 2')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'Certainty_3', fit_reg=True, ci=None, ax=ax9, label='ISCED = 3')

ax9.set(ylabel='Certainty_3', xlabel='Wealth')
ax9.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [104]:
# Trend line for Absolute Uncertainty Score vs wealth reponses sorted by isced and ORDERED by wealth WITHOUT scatter

fig, ax10 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax10, label='ISCED = 1')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax10, label='ISCED = 2')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax10, label='ISCED = 3')

ax10.set(ylabel='RiskComprehension_3', xlabel='Wealth')
ax10.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [105]:
# Trend line for Absolute Number Comprehension Score vs wealth reponses sorted by isced and ORDERED by wealth WITHOUT scatter

fig, ax11 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 1')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 2')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 3')

ax11.set(ylabel='Numeracy_3', xlabel='Wealth')
ax11.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [106]:
# Trend line for Absolute Graph Comprehension Score vs wealth reponses sorted by isced and ORDERED by wealth WITHOUT scatter

fig, ax11 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 1')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 2')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 3')

ax11.set(ylabel='GraphLiteracy_3', xlabel='Wealth')
ax11.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [107]:
# Trend line for Absolute Bayesian Reasoning Score vs wealth reponses sorted by isced and ORDERED by wealth WITHOUT scatter

fig, ax12 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df6.loc[df6['isced']==1].reset_index(drop = True), x = df6.loc[df6['isced']==1].reset_index(drop = True)['wealth'], y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 1')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==2].reset_index(drop = True), x = df6.loc[df6['isced']==2].reset_index(drop = True)['wealth'], y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 2')
sns.regplot (scatter = False, data = df6.loc[df6['isced']==3].reset_index(drop = True), x = df6.loc[df6['isced']==3].reset_index(drop = True)['wealth'], y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 3')

ax12.set(ylabel='Bayesianreasoning_1', xlabel='Wealth')
ax12.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [108]:
# Descriptive stats for the data set, isced = 1
# NA values of income are removed

df7 = df5
df7.drop(df7[df7['income'] == 7].index, inplace = True)

df7.loc[df7['isced']==1].describe()
Out[108]:
age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
count 516.000000 516.000000 516.0 516.000000 5.160000e+02 516.000000 516.000000 516.000000 516.000000 516.000000 516.000000 516.000000 516.000000 516.000000 516.000000 516.000000 516.000000
mean 35.114341 2.437984 1.0 2.593023 1.070025e+07 0.794574 1.234496 1.251938 1.645349 0.244186 26.485788 30.862403 41.731266 54.844961 24.418605 5.170543 37.673567
std 9.188189 0.566055 0.0 1.358565 4.079317e+07 0.854713 0.879790 0.960631 0.947248 0.430020 28.490420 21.994758 32.021031 31.574943 43.002045 2.142946 15.823234
min 20.000000 2.000000 1.0 1.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
25% 30.500000 2.000000 1.0 2.000000 4.000000e+05 0.000000 1.000000 1.000000 1.000000 0.000000 0.000000 25.000000 33.333333 33.333333 0.000000 3.000000 23.076923
50% 30.500000 2.000000 1.0 2.000000 1.500000e+06 1.000000 1.000000 1.000000 2.000000 0.000000 33.333333 25.000000 33.333333 66.666667 0.000000 5.000000 35.714286
75% 40.500000 3.000000 1.0 3.000000 7.000000e+06 1.000000 2.000000 2.000000 2.000000 0.000000 33.333333 50.000000 66.666667 66.666667 0.000000 7.000000 50.000000
max 70.500000 4.000000 1.0 6.000000 5.000000e+08 3.000000 3.000000 3.000000 3.000000 1.000000 100.000000 75.000000 100.000000 100.000000 100.000000 11.000000 78.571429
In [109]:
df7.loc[df7['isced']==2].describe()
Out[109]:
age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
count 356.000000 356.000000 356.0 356.000000 3.560000e+02 356.000000 356.000000 356.000000 356.000000 356.000000 356.000000 356.000000 356.000000 356.000000 356.000000 356.000000 356.000000
mean 32.424157 2.308989 2.0 2.030899 9.234711e+06 0.955056 1.320225 1.345506 1.629213 0.300562 31.835206 33.005618 44.850187 54.307116 30.056180 5.550562 41.026670
std 9.745053 0.536056 0.0 1.211053 4.620976e+07 0.902705 0.963407 0.976488 0.817168 0.459148 30.090157 24.085177 32.549604 27.238940 45.914767 2.175465 16.442525
min 18.000000 2.000000 2.0 1.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
25% 25.000000 2.000000 2.0 1.000000 3.000000e+05 0.000000 1.000000 1.000000 1.000000 0.000000 0.000000 25.000000 33.333333 33.333333 0.000000 4.000000 28.571429
50% 30.500000 2.000000 2.0 2.000000 8.000000e+05 1.000000 1.000000 1.000000 2.000000 0.000000 33.333333 25.000000 33.333333 66.666667 0.000000 5.000000 38.461538
75% 38.250000 3.000000 2.0 2.000000 4.625000e+06 2.000000 2.000000 2.000000 2.000000 1.000000 66.666667 50.000000 66.666667 66.666667 100.000000 7.000000 53.846154
max 70.000000 4.000000 2.0 6.000000 6.000000e+08 3.000000 3.000000 3.000000 3.000000 1.000000 100.000000 75.000000 100.000000 100.000000 100.000000 11.000000 84.615385
In [110]:
df7.loc[df7['isced']==3].describe()
Out[110]:
age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
count 34.000000 34.000000 34.0 34.000000 3.400000e+01 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000
mean 34.176471 2.441176 3.0 1.705882 2.461516e+06 1.176471 0.911765 0.911765 1.529412 0.235294 39.215686 22.794118 30.392157 50.980392 23.529412 4.764706 35.035553
std 13.167270 0.746352 0.0 1.268008 5.835454e+06 0.968303 0.668225 1.025955 0.991946 0.430562 32.276779 16.705614 34.198516 33.064873 43.056155 2.175049 15.969943
min 16.000000 0.000000 3.0 1.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
25% 22.500000 2.000000 3.0 1.000000 3.125000e+04 0.000000 0.250000 0.000000 1.000000 0.000000 0.000000 6.250000 0.000000 33.333333 0.000000 3.000000 21.428571
50% 30.500000 2.000000 3.0 1.000000 2.000000e+05 1.000000 1.000000 1.000000 1.000000 0.000000 33.333333 25.000000 33.333333 33.333333 0.000000 5.000000 35.714286
75% 40.500000 3.000000 3.0 2.000000 1.875000e+06 2.000000 1.000000 2.000000 2.000000 0.000000 66.666667 25.000000 66.666667 66.666667 0.000000 6.000000 46.153846
max 70.500000 4.000000 3.0 6.000000 3.000000e+07 3.000000 2.000000 3.000000 3.000000 1.000000 100.000000 50.000000 100.000000 100.000000 100.000000 9.000000 64.285714
In [111]:
# Trend line for Absolute Tota Facet Score vs income reponses sorted by isced and ORDERED by income WITH scatter

fig, ax7 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = df7.loc[df7['isced']==1]['TotalScore_13'], fit_reg=True, ci=None, ax=ax7, label='ISCED = 1')
sns.regplot (data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = df7.loc[df7['isced']==2]['TotalScore_13'], fit_reg=True, ci=None, ax=ax7, label='ISCED = 2')
sns.regplot (data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = df7.loc[df7['isced']==3]['TotalScore_13'], fit_reg=True, ci=None, ax=ax7, label='ISCED = 3')

ax7.set(ylabel='Total Scores_19', xlabel='INCOME')
ax7.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [112]:
# Trend line for Absolute Tota Facet Score vs income reponses sorted by isced and ORDERED by income WITHOUT scatter

fig, ax8 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = 'TotalScore_13', fit_reg=True, ci=None, ax=ax8, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = 'TotalScore_13', fit_reg=True, ci=None, ax=ax8, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = 'TotalScore_13', fit_reg=True, ci=None, ax=ax8, label='ISCED = 3')

ax8.set(ylabel='Total Scores_19', xlabel='INCOME')
ax8.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [113]:
# Trend line for Absolute Certainty Score vs income reponses sorted by isced and ORDERED by income WITHOUT scatter

fig, ax9 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = 'Certainty_3', fit_reg=True, ci=None, ax=ax9, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = 'Certainty_3', fit_reg=True, ci=None, ax=ax9, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = 'Certainty_3', fit_reg=True, ci=None, ax=ax9, label='ISCED = 3')

ax9.set(ylabel='Certainty_3', xlabel='INCOME')
ax9.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [114]:
# Trend line for Absolute Risk Comprehension Score vs income reponses sorted by isced and ORDERED by income WITHOUT scatter

fig, ax10 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax10, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax10, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = 'RiskComprehension_3', fit_reg=True, ci=None, ax=ax10, label='ISCED = 3')

ax10.set(ylabel='RiskComprehension_3', xlabel='INCOME')
ax10.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [115]:
# Trend line for Absolute Number Comprehension Score vs income reponses sorted by isced and ORDERED by income WITHOUT scatter

fig, ax11 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = 'Numeracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 3')

ax11.set(ylabel='Numeracy_3', xlabel='INCOME')
ax11.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [116]:
# Trend line for Absolute Graph Comprehension Score vs income reponses sorted by isced and ORDERED by income WITHOUT scatter

fig, ax11 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = 'GraphLiteracy_3', fit_reg=True, ci=None, ax=ax11, label='ISCED = 3')

ax11.set(ylabel='GraphLiteracy_3', xlabel='INCOME')
ax11.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [117]:
# Trend line for Absolute Bayesian Reasoning Score vs income reponses sorted by isced and ORDERED by income WITHOUT scatter

fig, ax12 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[df7['isced']==1].reset_index(drop = True), x = 'income', y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==2].reset_index(drop = True), x = 'income', y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[df7['isced']==3].reset_index(drop = True), x = 'income', y = 'Bayesianreasoning_1', fit_reg=True, ci=None, ax=ax12, label='ISCED = 3')

ax12.set(ylabel='Bayesianreasoning_1', xlabel='INCOME')
ax12.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [118]:
df7
Out[118]:
ResponseId age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
0 q3xfqbasiduvbbq3xftruekpjog3g58m 40.5 3 1 2 8000000.0 0 1 3 3 0 0.000000 25.0 100.000000 100.000000 0.0 7 50.000000
1 R_4PjnTbc2vIjogot 31.0 2 1 1 200000.0 2 1 0 1 0 66.666667 25.0 0.000000 33.333333 0.0 4 30.769231
2 R_4Ph1UNtYnaoPSX7 25.0 2 1 3 400000.0 0 2 0 1 0 0.000000 50.0 0.000000 33.333333 0.0 3 23.076923
3 n5tap3d3v5102n5tay187lv3mwzs3sjy 40.5 3 1 2 5000000.0 0 0 1 1 0 0.000000 0.0 33.333333 33.333333 0.0 2 14.285714
4 n6oeoyadt6ogysn6oeoy85zyh3urcai8 50.5 3 1 3 7500000.0 0 2 3 3 1 0.000000 50.0 100.000000 100.000000 100.0 9 64.285714
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
901 tljgvfjwoh3aj1i4hdk8wtphtljgjahd 70.5 4 3 1 2500000.0 1 1 3 3 0 33.333333 25.0 100.000000 100.000000 0.0 8 57.142857
902 y139mcxc619h0ooosy139muk14mpfpvm 30.5 2 3 1 0.0 3 1 0 2 0 100.000000 25.0 0.000000 66.666667 0.0 6 42.857143
903 R_4IY67BO1uGe00kp 39.0 3 3 2 35000.0 2 1 0 1 0 66.666667 25.0 0.000000 33.333333 0.0 4 30.769231
904 ylqbir1q5isg86n72mvz9jylqbirf512 30.5 2 3 2 50000.0 1 0 0 1 0 33.333333 0.0 0.000000 33.333333 0.0 2 14.285714
905 4h20tw0737azsz4k54h20tfe79kj50cq 21.5 2 3 1 100000.0 0 1 0 0 1 0.000000 25.0 0.000000 0.000000 100.0 2 14.285714

906 rows × 18 columns

In [119]:
# Since we already have a classification for Age groups in the form of age_rec, we will use that.
# We will also use median of age to see if it yields any relevant results, as instructed.

# AXES to be used = Age or age groups, ISCED, Income

# Age groups = [2,3,4]
# Age group 2 = 18 to 35 y/o
# Age group 3 = 36 to 59 y/o
# Age group 4 = 60 to 75 y/o (75 y/o, i.e, within the scope of the data we have, it can mean 60 and above also)
In [120]:
df7.loc[(df7['age_rec']==2)].describe()
Out[120]:
age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
count 586.000000 586.0 586.000000 586.000000 5.860000e+02 586.000000 586.000000 586.000000 586.000000 586.000000 586.000000 586.000000 586.000000 586.000000 586.000000 586.000000 586.000000
mean 28.216724 2.0 1.503413 2.225256 7.457495e+06 0.877133 1.259386 1.283276 1.616041 0.259386 29.237770 31.484642 42.775882 53.868032 25.938567 5.295222 38.970671
std 3.873640 0.0 0.558529 1.258317 2.899640e+07 0.887861 0.926876 0.966955 0.891181 0.438672 29.595359 23.171909 32.231832 29.706037 43.867200 2.129133 16.023638
min 18.000000 2.0 1.000000 1.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
25% 25.000000 2.0 1.000000 1.000000 3.000000e+05 0.000000 1.000000 1.000000 1.000000 0.000000 0.000000 25.000000 33.333333 33.333333 0.000000 4.000000 28.571429
50% 30.500000 2.0 1.000000 2.000000 1.000000e+06 1.000000 1.000000 1.000000 2.000000 0.000000 33.333333 25.000000 33.333333 66.666667 0.000000 5.000000 38.461538
75% 30.500000 2.0 2.000000 3.000000 4.000000e+06 2.000000 2.000000 2.000000 2.000000 1.000000 66.666667 50.000000 66.666667 66.666667 100.000000 7.000000 50.000000
max 35.000000 2.0 3.000000 6.000000 5.000000e+08 3.000000 3.000000 3.000000 3.000000 1.000000 100.000000 75.000000 100.000000 100.000000 100.000000 11.000000 84.615385
In [121]:
df7.loc[(df7['age_rec']==3)].describe()
Out[121]:
age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
count 285.000000 285.0 285.000000 285.000000 2.850000e+02 285.000000 285.000000 285.000000 285.000000 285.000000 285.000000 285.000000 285.000000 285.000000 285.000000 285.000000 285.000000
mean 42.577193 3.0 1.385965 2.578947 1.463604e+07 0.856140 1.238596 1.235088 1.666667 0.280702 28.538012 30.964912 41.169591 55.555556 28.070175 5.277193 38.401774
std 4.501683 0.0 0.573916 1.423487 6.251005e+07 0.882342 0.887661 0.984473 0.914156 0.450132 29.411398 22.191520 32.815766 30.471859 45.013245 2.260423 16.624520
min 36.000000 3.0 1.000000 1.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
25% 40.500000 3.0 1.000000 2.000000 3.000000e+05 0.000000 1.000000 0.000000 1.000000 0.000000 0.000000 25.000000 0.000000 33.333333 0.000000 3.000000 23.076923
50% 40.500000 3.0 1.000000 2.000000 2.000000e+06 1.000000 1.000000 1.000000 2.000000 0.000000 33.333333 25.000000 33.333333 66.666667 0.000000 5.000000 35.714286
75% 44.000000 3.0 2.000000 3.000000 7.500000e+06 2.000000 2.000000 2.000000 2.000000 1.000000 66.666667 50.000000 66.666667 66.666667 100.000000 7.000000 50.000000
max 54.000000 3.0 3.000000 6.000000 6.000000e+08 3.000000 3.000000 3.000000 3.000000 1.000000 100.000000 75.000000 100.000000 100.000000 100.000000 11.000000 78.571429
In [122]:
df7.loc[(df7['age_rec']==4)].describe()
Out[122]:
age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
count 34.000000 34.0 34.000000 34.000000 3.400000e+01 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000 34.000000
mean 62.897059 4.0 1.500000 2.323529 1.032985e+07 0.852941 1.352941 1.529412 1.676471 0.264706 28.431373 33.823529 50.980392 55.882353 26.470588 5.676471 41.435036
std 4.344588 0.0 0.615457 1.531895 1.451734e+07 0.743960 0.812119 0.928841 0.944541 0.447811 24.798654 20.302964 30.961358 31.484685 44.781108 2.010888 14.762602
min 57.000000 4.0 1.000000 1.000000 1.000000e+05 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.000000 14.285714
25% 60.500000 4.0 1.000000 1.000000 1.437500e+06 0.000000 1.000000 1.000000 1.000000 0.000000 0.000000 25.000000 33.333333 33.333333 0.000000 4.000000 28.571429
50% 60.500000 4.0 1.000000 2.000000 6.000000e+06 1.000000 1.000000 2.000000 2.000000 0.000000 33.333333 25.000000 66.666667 66.666667 0.000000 5.500000 40.659341
75% 64.250000 4.0 2.000000 2.000000 1.000000e+07 1.000000 2.000000 2.000000 2.000000 0.750000 33.333333 50.000000 66.666667 66.666667 75.000000 7.750000 56.318681
max 70.500000 4.0 3.000000 6.000000 5.250000e+07 2.000000 3.000000 3.000000 3.000000 1.000000 66.666667 75.000000 100.000000 100.000000 100.000000 9.000000 64.285714
In [ ]:
 
In [123]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.set(ylabel='Total Scores_14', xlabel='INCOME 18 to 35')
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.set(ylabel='Total Scores_14', xlabel='INCOME 36 to 59')
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()

fig, ax3 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')

ax3.set(ylabel='Total Scores_14', xlabel='INCOME 60 to 75')
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [124]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ df7['age_rec']==2  ].groupby(['income']).mean(numeric_only=True)['TotalScore_13'], yerr = df7.loc[ (df7['age_rec']==2) ].groupby(['income'])['TotalScore_13'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Total Scores_14', xlabel='INCOME 18 to 35',  yticks = np.arange(5, 16 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.set(ylabel='Total Scores_14', xlabel='INCOME 36 to 59',  yticks = np.arange(5, 16 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ df7['age_rec']==3  ].groupby(['income']).mean(numeric_only=True)['TotalScore_13'], yerr = df7.loc[ (df7['age_rec']==3) ].groupby(['income'])['TotalScore_13'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()

fig, ax3 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')

ax3.set(ylabel='Total Scores_14', xlabel='INCOME 60 to 75',  yticks = np.arange(5, 16 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df7.loc[ df7['age_rec']== 4 ]['income'].unique(), y = df7.loc[ df7['age_rec']==4  ].groupby(['income']).mean(numeric_only=True)['TotalScore_13'], yerr = df7.loc[ (df7['age_rec']==4) ].groupby(['income'])['TotalScore_13'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [125]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['Certainty_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['Certainty_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['Certainty_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.set(ylabel='Certainty_3', xlabel='INCOME 18 to 35',  yticks = np.arange(0, 6 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ df7['age_rec']==2  ].groupby(['income'])['Certainty_3'].mean(), yerr = df7.loc[ (df7['age_rec']==2) ].groupby(['income'])['Certainty_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['Certainty_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['Certainty_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['Certainty_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.set(ylabel='Certainty_3', xlabel='INCOME 36 to 59',  yticks = np.arange(0, 6 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ df7['age_rec']==3  ].groupby(['income'])['Certainty_3'].mean(), yerr = df7.loc[ (df7['age_rec']==3) ].groupby(['income'])['Certainty_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()

fig, ax3 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['Certainty_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['Certainty_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['Certainty_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')

ax3.set(ylabel='Certainty_3', xlabel='INCOME 60 to 75',  yticks = np.arange(0, 6 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df7.loc[ df7['age_rec']== 4 ]['income'].unique(), y = df7.loc[ df7['age_rec']==4  ].groupby(['income'])['Certainty_3'].mean(), yerr = df7.loc[ (df7['age_rec']==4) ].groupby(['income'])['Certainty_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [126]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.set(ylabel='RiskComprehension_3', xlabel='INCOME 18 to 35',  yticks = np.arange(0, 3 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ df7['age_rec']==2  ].groupby(['income'])['RiskComprehension_3'].mean(), yerr = df7.loc[ (df7['age_rec']==2) ].groupby(['income'])['RiskComprehension_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.set(ylabel='RiskComprehension_3', xlabel='INCOME 36 to 59',  yticks = np.arange(0, 3 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ df7['age_rec']==3  ].groupby(['income'])['RiskComprehension_3'].mean(), yerr = df7.loc[ (df7['age_rec']==3) ].groupby(['income'])['RiskComprehension_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()

fig, ax3 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')

ax3.set(ylabel='RiskComprehension_3', xlabel='INCOME 60 to 75',  yticks = np.arange(0, 3 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df7.loc[ df7['age_rec']== 4 ]['income'].unique(), y = df7.loc[ df7['age_rec']==4  ].groupby(['income'])['RiskComprehension_3'].mean(), yerr = df7.loc[ (df7['age_rec']==4) ].groupby(['income'])['RiskComprehension_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [127]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.set(ylabel='Numeracy_3', xlabel='INCOME 18 to 35',  yticks = np.arange(0, 6 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ df7['age_rec']==2  ].groupby(['income'])['Numeracy_3'].mean(), yerr = df7.loc[ (df7['age_rec']==2) ].groupby(['income'])['Numeracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.set(ylabel='Numeracy_3', xlabel='INCOME 36 to 59',  yticks = np.arange(0, 6 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ df7['age_rec']==3  ].groupby(['income'])['Numeracy_3'].mean(), yerr = df7.loc[ (df7['age_rec']==3) ].groupby(['income'])['Numeracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()

fig, ax3 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')

ax3.set(ylabel='Numeracy_3', xlabel='INCOME 60 to 75',  yticks = np.arange(0, 6 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df7.loc[ df7['age_rec']== 4 ]['income'].unique(), y = df7.loc[ df7['age_rec']==4  ].groupby(['income'])['Numeracy_3'].mean(), yerr = df7.loc[ (df7['age_rec']==4) ].groupby(['income'])['Numeracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [128]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.set(ylabel='GraphLiteracy_3', xlabel='INCOME 18 to 35',  yticks = np.arange(0, 4 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ df7['age_rec']==2  ].groupby(['income'])['GraphLiteracy_3'].mean(), yerr = df7.loc[ (df7['age_rec']==2) ].groupby(['income'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.set(ylabel='GraphLiteracy_3', xlabel='INCOME 36 to 59',  yticks = np.arange(0, 4 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ df7['age_rec']==3  ].groupby(['income'])['GraphLiteracy_3'].mean(), yerr = df7.loc[ (df7['age_rec']==3) ].groupby(['income'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()

fig, ax3 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')

ax3.set(ylabel='GraphLiteracy_3', xlabel='INCOME 60 to 75',  yticks = np.arange(0, 4 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df7.loc[ df7['age_rec']== 4 ]['income'].unique(), y = df7.loc[ df7['age_rec']==4  ].groupby(['income'])['GraphLiteracy_3'].mean(), yerr = df7.loc[ (df7['age_rec']==4) ].groupby(['income'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [129]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==2) & (df7['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.set(ylabel='Bayesianreasoning_1', xlabel='INCOME 18 to 35',  yticks = np.arange(0, 5 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax1.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ df7['age_rec']==2  ].groupby(['income'])['Bayesianreasoning_1'].mean(), yerr = df7.loc[ (df7['age_rec']==2) ].groupby(['income'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==3) & (df7['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.set(ylabel='Bayesianreasoning_1', xlabel='INCOME 36 to 59',  yticks = np.arange(0, 5 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax2.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ df7['age_rec']==3  ].groupby(['income'])['Bayesianreasoning_1'].mean(), yerr = df7.loc[ (df7['age_rec']==3) ].groupby(['income'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()

fig, ax3 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age_rec']==4) & (df7['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax3, label='ISCED = 3')

ax3.set(ylabel='Bayesianreasoning_1', xlabel='INCOME 60 to 75',  yticks = np.arange(0, 5 , 1))
ax3.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
ax3.errorbar(x = df7.loc[ df7['age_rec']== 4 ]['income'].unique(), y = df7.loc[ df7['age_rec']==4  ].groupby(['income'])['Bayesianreasoning_1'].mean(), yerr = df7.loc[ (df7['age_rec']==4) ].groupby(['income'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [130]:
# Age median method
# Age_median
In [131]:
age_m = df2["age"].median()
age_m
Out[131]:
30.5
In [ ]:
 
In [132]:
df7["income"].value_counts()
Out[132]:
income
2    371
1    250
3    148
5     47
4     46
6     44
Name: count, dtype: int64
In [ ]:
 
In [ ]:
 
In [133]:
df7.loc[(df7['age'] < age_m)].describe()
Out[133]:
age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
count 233.000000 233.000000 233.000000 233.000000 2.330000e+02 233.000000 233.000000 233.000000 233.000000 233.000000 233.000000 233.000000 233.000000 233.000000 233.000000 233.000000 233.000000
mean 24.143777 1.991416 1.695279 2.025751 8.812035e+06 1.145923 1.364807 1.364807 1.557940 0.317597 38.197425 34.120172 45.493562 51.931330 31.759657 5.751073 43.184927
std 3.100287 0.131024 0.569955 1.220948 4.168456e+07 0.912175 0.933088 0.964882 0.775341 0.466544 30.405830 23.327193 32.162737 25.844715 46.654385 2.059003 15.735196
min 16.000000 0.000000 1.000000 1.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 7.142857
25% 21.500000 2.000000 1.000000 1.000000 2.000000e+05 0.000000 1.000000 1.000000 1.000000 0.000000 0.000000 25.000000 33.333333 33.333333 0.000000 4.000000 30.769231
50% 23.000000 2.000000 2.000000 2.000000 5.000000e+05 1.000000 1.000000 1.000000 1.000000 0.000000 33.333333 25.000000 33.333333 33.333333 0.000000 6.000000 42.857143
75% 27.000000 2.000000 2.000000 2.000000 2.500000e+06 2.000000 2.000000 2.000000 2.000000 1.000000 66.666667 50.000000 66.666667 66.666667 100.000000 7.000000 53.846154
max 30.000000 2.000000 3.000000 6.000000 5.000000e+08 3.000000 3.000000 3.000000 3.000000 1.000000 100.000000 75.000000 100.000000 100.000000 100.000000 11.000000 84.615385
In [134]:
df7.loc[(df7['age'] >= age_m)].describe()
Out[134]:
age age_rec isced income wealth Certainty_3 RiskComprehension_3 GraphLiteracy_3 Numeracy_3 Bayesianreasoning_1 Certainty_% RiskComprehension_% GraphLiteracy_% Numeracy_% Bayesianreasoning_% TotalScore_13 TotalScore_%
count 673.000000 673.000000 673.000000 673.000000 6.730000e+02 673.000000 673.000000 673.000000 673.000000 673.000000 673.000000 673.000000 673.000000 673.000000 673.000000 673.000000 673.000000
mean 37.442051 2.524517 1.389302 2.447251 1.016252e+07 0.777117 1.218425 1.245171 1.661218 0.248143 25.903913 30.460624 41.505696 55.373947 24.814264 5.150074 37.405908
std 8.762724 0.592419 0.548270 1.352014 4.252269e+07 0.852664 0.898818 0.973264 0.937605 0.432256 28.422118 22.470457 32.442124 31.253513 43.225629 2.180761 16.045282
min 30.500000 2.000000 1.000000 1.000000 0.000000e+00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
25% 30.500000 2.000000 1.000000 2.000000 3.750000e+05 0.000000 1.000000 0.000000 1.000000 0.000000 0.000000 25.000000 0.000000 33.333333 0.000000 3.000000 23.076923
50% 34.000000 2.000000 1.000000 2.000000 1.500000e+06 1.000000 1.000000 1.000000 2.000000 0.000000 33.333333 25.000000 33.333333 66.666667 0.000000 5.000000 35.714286
75% 40.500000 3.000000 2.000000 3.000000 6.000000e+06 1.000000 2.000000 2.000000 2.000000 0.000000 33.333333 50.000000 66.666667 66.666667 0.000000 7.000000 50.000000
max 70.500000 4.000000 3.000000 6.000000 6.000000e+08 3.000000 3.000000 3.000000 3.000000 1.000000 100.000000 75.000000 100.000000 100.000000 100.000000 11.000000 78.571429
In [ ]:
 
In [135]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.set(ylabel='Total Scores_19', xlabel='INCOME for < median age')
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (data = df7.loc[(df7['age'] >= age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.set(ylabel='Total Scores_19', xlabel='INCOME for >=median age')
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
In [136]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ (df7['age'] < age_m)  ].groupby(['income'])['TotalScore_13'].mean(), yerr = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['TotalScore_13'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Total Scores_19', xlabel='INCOME for < median age',  yticks = np.arange(5, 16 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['TotalScore_13'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ (df7['age'] >=age_m)  ].groupby(['income'])['TotalScore_13'].mean(), yerr = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['TotalScore_13'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='Total Scores_19', xlabel='INCOME for >=median age',  yticks = np.arange(5, 16 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
In [137]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['Certainty_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['Certainty_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['Certainty_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ (df7['age'] < age_m)  ].groupby(['income'])['Certainty_3'].mean(), yerr = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['Certainty_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Certainty_3', xlabel='INCOME for < median age',  yticks = np.arange(0, 6 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['Certainty_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['Certainty_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['Certainty_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ (df7['age'] >=age_m)  ].groupby(['income'])['Certainty_3'].mean(), yerr = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['Certainty_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='Certainty_3', xlabel='INCOME for >=median age')
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
In [138]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ (df7['age'] < age_m)  ].groupby(['income'])['RiskComprehension_3'].mean(), yerr = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['RiskComprehension_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='RiskComprehension_3', xlabel='INCOME for < median age',  yticks = np.arange(0, 3 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['RiskComprehension_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ (df7['age'] >=age_m)  ].groupby(['income'])['RiskComprehension_3'].mean(), yerr = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['RiskComprehension_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='RiskComprehension_3', xlabel='INCOME for >=median age',  yticks = np.arange(0, 3 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
In [139]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ (df7['age'] < age_m)  ].groupby(['income'])['Numeracy_3'].mean(), yerr = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['Numeracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Numeracy_3', xlabel='INCOME for < median age',  yticks = np.arange(0, 6 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['Numeracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ (df7['age'] >=age_m)  ].groupby(['income'])['Numeracy_3'].mean(), yerr = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['Numeracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='Numeracy_3', xlabel='INCOME for >=median age',  yticks = np.arange(0, 6 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
In [140]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ (df7['age'] < age_m)  ].groupby(['income'])['GraphLiteracy_3'].mean(), yerr = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='GraphLiteracy_3', xlabel='INCOME for < median age',  yticks = np.arange(0, 4 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['GraphLiteracy_3'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ (df7['age'] >=age_m)  ].groupby(['income'])['GraphLiteracy_3'].mean(), yerr = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['GraphLiteracy_3'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='GraphLiteracy_3', xlabel='INCOME for >=median age',  yticks = np.arange(0, 4 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
In [141]:
fig, ax1 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] < age_m) & (df7['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax1, label='ISCED = 3')

ax1.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ (df7['age'] < age_m)  ].groupby(['income'])['Bayesianreasoning_1'].mean(), yerr = df7.loc[ (df7['age'] < age_m) ].groupby(['income'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax1.set(ylabel='Bayesianreasoning_1', xlabel='INCOME for < median age',  yticks = np.arange(0, 5 , 1))
ax1.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()

fig, ax2 = plt.subplots(figsize=(6, 6))

sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==1)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 1')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==2)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 2')
sns.regplot (scatter = False, data = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)].reset_index(drop = True), x = 'income', y = df7.loc[(df7['age'] >=age_m) & (df7['isced']==3)]['Bayesianreasoning_1'], fit_reg=True, ci=None, ax=ax2, label='ISCED = 3')

ax2.errorbar(x = [1,2,3,4,5,6], y = df7.loc[ (df7['age'] >=age_m)  ].groupby(['income'])['Bayesianreasoning_1'].mean(), yerr = df7.loc[ (df7['age'] >=age_m) ].groupby(['income'])['Bayesianreasoning_1'].sem(), fmt='o', color = lighten_color('gray',0.5))
ax2.set(ylabel='Bayesianreasoning_1', xlabel='INCOME for >=median age',  yticks = np.arange(0, 5 , 1))
ax2.legend(loc='center left',bbox_to_anchor=(1.0, 0.5))
plt.show()
No description has been provided for this image
No description has been provided for this image
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]: